WordPress 子页面不工作
Wordpress subpages not working
我有这个 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
~
您的 WordPress 网站无法运行的原因是您已从 Apache 迁移到 IIS,但没有将重写规则从 .htaccess
迁移到 Web.config
文件。因此,所有漂亮的 WordPress link 都失败了,因为 IIS 不会重写它们,因为它从不读取 .htaccess
文件。
您需要在与您的 WordPress 相同的目录中找到 Web.config
文件。如果那里没有 Web.config
文件,请按如下方式创建它。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
</system.webServer>
</configuration>
现在只需在现有或新创建的 Web.config
文件的 <system.webServer>
元素中添加以下重写规则。
<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
服务器变量。
我有这个 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
~
您的 WordPress 网站无法运行的原因是您已从 Apache 迁移到 IIS,但没有将重写规则从 .htaccess
迁移到 Web.config
文件。因此,所有漂亮的 WordPress link 都失败了,因为 IIS 不会重写它们,因为它从不读取 .htaccess
文件。
您需要在与您的 WordPress 相同的目录中找到 Web.config
文件。如果那里没有 Web.config
文件,请按如下方式创建它。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
</system.webServer>
</configuration>
现在只需在现有或新创建的 Web.config
文件的 <system.webServer>
元素中添加以下重写规则。
<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
服务器变量。