IIS URL 重定向 - 多个匹配项 - 优先顺序

问题描述

我遇到了多个正则表达式匹配发生的问题。请参阅下面的列表。现在 Rule3 总是优先于其他两个。因此,当我转到 /sales/naspo 时,它总是将我的用户重定向到根 /sales 站点。如果我删除 Rule3,其他规则会正确重定向

Rule1: ^sales/fieldmarketing/(.*)

Rule2: ^sales/naspo/(.*)

Rule3: ^sales/(.*)

我正在通过 IIS 7.5 管理器添加这些重定向。我已经阅读了有关属性 stopProcessing=true 在这种情况下提供帮助的信息。查看我的 web.config 这个属性已经存在,即使我在 IIS 管理器 gui 中没有看到该选项。我已经在 web.config 中包含了生成的规则。

<rule name="Sales Field Marketing to SPO" enabled="true" stopProcessing="true"> <match url="^sales/fieldmarketing/(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Redirect" url="https://newsite.com/sites/SalesFieldMarketing" appendQueryString="false" /> </rule>

<rule name="Sales NASPO to SPO" enabled="true" stopProcessing="true"> <match url="^sales/naspo/(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Redirect" url="https://newsite.com/sites/NASPO" appendQueryString="false" /> </rule>

<rule name="Sales Root to SPO" enabled="true" stopProcessing="true"> <match url="^sales/(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Redirect" url="https://newsite.com/sites/sales/" appendQueryString="false" /> </rule>

感谢大家的帮助!

解决方法

关于重写规则的优先级,可以在 IIS 管理器中上下移动,按照这种方式指定顺序。enter image description here