• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

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

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • 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环境下的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模块,如果没有则还需要去安装。

      你需要登录,才能进行发帖操作