此重定向存在问题。我试图将每个州的安装位置页面永久重定向到新页面。这是一个例子,效果很好。
<rule name="49 set wyoming/installation-locations 301 permanently moved" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="wyoming/installation-locations" />
</conditions>
<action type="Redirect" url="/locations/wy/" redirectType="Permanent" />
</rule>
现在,当我必须重定向主安装位置页面(如下)时,它可以工作,但是此新的重定向规则将覆盖上面的位置和其他状态的位置。
<rule name="locations redirect" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="installation-locations" />
</conditions>
<action type="Redirect" url="/locations/" redirectType="Permanent" />
</rule>
有人有什么建议吗?
答案 0 :(得分:0)
尝试将模式设置为在installation-locations
规则的locations redirect
之前不接受任何其他内容。
<rule name="locations redirect" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="^(installation-locations)$" />
</conditions>
<action type="Redirect" url="/locations/" redirectType="Permanent" />
</rule>
更多信息:https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/testing-rewrite-rule-patterns
答案 1 :(得分:0)
根据您的描述,最简单的解决方法是修改url重写规则顺序。
由于安装位置也可以与“ wyoming / installation-locations”模式匹配,因此您会发现位置重定向规则没有用。
据我所知,URL重写规则匹配是一对一的。它将使用第一条规则,然后使用第二条,第三条规则。如果该规则与第一个匹配,则不会继续匹配第二个。
我建议您可以尝试使用以下url重写规则,它将很好地工作。
<rule name="49 set wyoming/installation-locations 301 permanently moved" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="wyoming/installation-locations" />
</conditions>
<action type="Redirect" url="/locations/wy/" redirectType="Permanent" />
</rule>
<rule name="locations redirect" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="installation-locations" />
</conditions>
<action type="Redirect" url="/locations/" redirectType="Permanent" />
</rule>
答案 2 :(得分:0)
我们通过在页面皮肤中放置服务器端脚本来解决此问题。
if (DotNetNuke.Entities.Tabs.TabController.CurrentPage.TabName == "Installation Locations")
Response.Redirect("/locations");