多个web.config重定向规则

时间:2012-04-26 23:57:28

标签: asp.net windows web-config http-status-code-301

我试图进行301重定向,因为我更改了域名。使用Windows服务器并在web.config中添加以下规则。

 <rule name="redirectDomain" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Redirect" url="http://replacement-cost.net/{R:1}" redirectType="Permanent" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="^(www.)?windshield-replacement-cost\.org$" />
                    </conditions>
              </rule>

这是正常的,因为所有页面在新站点上具有相同的名称和文件结构...除了作为旧域的根目录的页面。现在是http://replacement-cost.net/windshield-replacement-cost

是否可以编写另一条规则来仅重定向根目录?有第二条规则重定向所有其他页面?可能是某种执行顺序?

实现与此基本相同的结果的东西

如果ruleURLISROOT = true&gt;转到http://replacement-cost.net/windshield-replacement-cost

否则

使用上面的代码重定向

任何帮助将不胜感激。我花了很长时间才走到这一步!感谢

1 个答案:

答案 0 :(得分:4)

这是应在现有规则之前添加的新规则

<rule name="redirect Root Domain" stopProcessing="true">
    <match url="^$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^(www.)?windshield-replacement-cost\.org$" />
    </conditions>
    <action type="Redirect" url="http://replacement-cost.net/windshield-replacement-cost" />
</rule>

这是您现有的规则

<rule name="redirectDomain" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^(www.)?windshield-replacement-cost\.org$" />
    </conditions>
    <action type="Redirect" url="http://replacement-cost.net/{R:1}" redirectType="Permanent" />
</rule>