我有这个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
〜
答案 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>