web.config重写路径规则

问题描述:

我想在web.config中创建一个重写规则,它将采用诸如http://example.org/MySite之类的URL并将它们重定向回根网站,例如http://example.orgweb.config重写路径规则

它也应该忽略特定的文件夹,如http://example.org/csshttp://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> 

第一个确保根不重定向到一个重定向循环,并停止处理,否则可能会申请更多的规则,和第二个排除您想要排除的文件夹,如果有更多的文件夹不需要重定向到根目录,只需在条件中添加另一行。