在部署新网站后,我真的很难让301重定向在我们的服务器上正常工作。我尝试过的所有操作都导致了500错误或只是无法正常工作。
下面是我的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>
<rule name="301 Redirect 1" stopProcessing="true">
<match url="^join$" />
<action type="Redirect" url="careers" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
我原本希望能够将http://www.example.com/join重定向到http://www.example.com/careers,但是访问http://www.example.com/join时却得到了404。
我已经检查并且URL重写模块已安装并启用。
我在做什么错了?
答案 0 :(得分:1)
将301重定向移动为wordpress规则之前的第一条规则。
<rewrite>
<rules>
<rule name="301 Redirect 1" stopProcessing="true">
<match url="^join$" />
<action type="Redirect" url="careers" redirectType="Permanent" />
</rule>
<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>
答案 1 :(得分:-1)
将代码替换为web.config文件中的代码,并使用以下代码进行更新
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Main Rule" 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>
</system.webServer>
</configuration>