web.config重写路径规则
问题描述:
我想在web.config中创建一个重写规则,它将采用诸如http://example.org/MySite之类的URL并将它们重定向回根网站,例如http://example.org。web.config重写路径规则
它也应该忽略特定的文件夹,如http://example.org/css或http://example.org/js。
<rewrite>
<rules>
<rule name="enquiry" stopProcessing="true">
<match url="http://example.org/^$" /> <!-- Wrong !! ->
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
答
这条规则应该是所有您需要:
<rewrite>
<rules>
<rule name="root rule" stopProcessing="true">
<match url="^$" />
<action type="None" />
</rule>
<rule name="redirect rule" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^/css" negate="true" />
<add input="{REQUEST_URI}" pattern="^/js" negate="true" />
</conditions>
<action type="Redirect" url="/" />
</rule>
</rules>
</rewrite>
第一个确保根不重定向到一个重定向循环,并停止处理,否则可能会申请更多的规则,和第二个排除您想要排除的文件夹,如果有更多的文件夹不需要重定向到根目录,只需在条件中添加另一行。