• 注册
  • 看我脸色
    看我脸色套图达人
    个人签名:就是喜欢美的东西。
    关注1 粉丝1 喜欢0内容256
    上海 · 晴 15-30℃
    全部文章 全部文章 关注:0 内容:1070

    Nginx/Apache/IIS环境下的WordPress伪静态规则【转】

  • 查看作者
  • 打赏作者
  • 拉黑名单
  • 全部文章
    • LV.1 新手
      套图达人

      WordPress不建议使用IIS环境!为了让WordPress的链接看起来简洁明了,有时候我们需要为Nginx/Apache/IIS环境下的WordPress设置伪静态规则。比如本站.html链接后缀就是使用Nginx环境下的WordPress伪静态规则来实现的。

      不知不觉玩儿WordPress已经快三年了,这三年折腾得不少。从最开始的Apache到现在的Nginx,从开始的5秒打开时间到现在不到1秒….编不下去了,进入今天的主题:Nginx/Apache/IIS环境下的WordPress伪静态规则,如果你修改了WordPress后台左侧菜单中设置——固定链接那么可能你需要这篇文章帮你解决出现的404问题。

      Nginx/Apache/IIS环境下的WordPress伪静态规则【转】

      Nginx/Apache/IIS环境下的WordPress伪静态规则

      Nginx环境下的WordPress伪静态规则

      location / {
      index index.html index.php;
      if (-f $request_filename/index.html){
      rewrite (.*) $1/index.html break;
      }
      if (-f $request_filename/index.php){
      rewrite (.*) $1/index.php;
      }
      if (!-f $request_filename){
      rewrite (.*) /index.php;
      }
      }

      Apache环境下的WordPress伪静态规则

      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$  [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>
      # END WordPress

      Apache的有点特殊,很多虚拟主机就是用的它,并且Apache的规则可以写在网站根目录中的.htaccess文件里,也可以写在Apache的主机配置中,也就是说,把上面的代码保存在网站根目录的.htaccess文件中的方法支持虚拟主机的WordPress伪静态。

      IIS环境下的WordPress伪静态规则

      <?xml version="1.0" encoding="UTF-8"?><configuration>
      <system.webServer>
      <rewrite>
      <rules>
      <rule name="category">
      <match url="category/?(.*)" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Rewrite" url="/index.php?category_name={R:1}" appendQueryString="false" logRewrittenUrl="false" />
      </rule>
      <rule name="tags">
      <match url="tag/?(.*)" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Rewrite" url="index.php?tag={R:1}" />
      </rule>
      <rule name="Main Rule" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php/{R:0}" />
      </rule>
      <rule name="wordpress" patternSyntax="Wildcard">
      <match url="*" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php" />
      </rule></rules>
      </rewrite>
      </system.webServer>
      </configuration>

      我没用过IIS,我也不建议使用Windows机器运行WordPress,因为它的效率太低了,而且问题也很多。将上面的代码保存为web.config,放在网站根目录下即可。注意,此功能需要服务器支持IIS URL Rewrite模块,如果没有则还需要去安装。

      请登录之后再进行评论

      登录
    • 帖子间隔 侧栏位置: