我的规则如下:
<rule name="SpecificRedirect1" stopProcessing="true">
<match url="^home" />
<action type="Redirect" url="/" redirectType="Permanent" />
</rule>
<rule name="SpecificRedirect2" stopProcessing="true">
<match url="^admin" />
<action type="Redirect" url="/" redirectType="Permanent" />
</rule>
我想添加更多也指向url =“/”
有没有办法可以将匹配组合成一行?
答案 0 :(得分:2)
使用管道作为&#34; OR&#34;运营商,像这样:
<match url="^home|admin" />
这将匹配mydomain.com/home和mydomain.com/admin。
修改
如果您想要以家庭或管理员开头的任何内容,请尝试以下方法:
<match url="^(admin|home)(.*)" />
这将匹配/admin/help/whatever.htm或/ admin123abc或几乎任何以admin或home开头的内容。
答案 1 :(得分:0)
虽然这个答案与您的问题并不完全一致,但我怀疑您没有考虑以类似homely
的符合规则的网址开头的网址
更新:就像@Smirnov在下面说的那样,模式可以简化为^((home|admin)(/|$))
因此,此正则表达式应该有效:^(((home|admin)/)|((home|admin)$))
它将匹配完全属于home或admin的路径,并且没有尾随斜杠或以home或admin开头且具有尾部斜杠的路径。
您可以轻松地测试以下规则:http://regexhero.net/tester(不是我的,也不是我的关联:)。检查多行选项以测试多个路径。
所以最终规则看起来应该是这样的:
<match url="^((home|admin)(/|$))" />