Wordpress子页面无法正常工作

时间:2015-01-10 00:07:41

标签: php wordpress .htaccess

我有这个wordpress网站,所有突然的子页面停止工作,这已经发生过,我现在修复了它,我的重写规则有什么问题?我收到404错误,这是一个名为/ about-us的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

1 个答案:

答案 0 :(得分:1)

您的WordPress网站无法正常运行的原因是您已从Apache迁移到IIS而未将重写规则从.htaccess迁移到Web.config文件。因此,所有WordPress漂亮链接都失败了,因为IIS不会重写它们,因为它永远不会读取.htaccess文件。

您需要找到与WordPress位于同一目录中的Web.config文件。如果您没有Web.config文件,请按以下步骤创建。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
  </system.webServer>
</configuration>

现在只需在现有或新创建的<system.webServer>文件的Web.config元素中添加以下重写规则。

<rewrite>
  <rules>
    <rule name="WordPress" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll">
        <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>

上述规则与.htaccess文件中的规则相同。它匹配任何与任何现有文件或目录不对应的请求URL,并将请求转发给index.php,该REQUEST_URI通过{{1}}服务器变量确定从请求的漂亮链接提供哪些文章。< / p>