IIS中重写规则的多个条件

时间:2017-07-20 01:38:10

标签: asp.net iis

我在配置文件中的asp.net mvc应用程序中有一个重写规则:

<rule name="Website1" stopProcessing="true">
  <match url=".*" />
    <conditions>
      <add input="{HTTP_HOST}" pattern="^(www.)?website1.com" />
      <add input="{PATH_INFO}" pattern="^/website1/" negate="true" />
     </conditions>
   <action type="Rewrite" url="\website1\{R:0}" />
</rule>

在这种情况下,规则如何在两个条件下起作用?两个条件都必须是真的吗?

1 个答案:

答案 0 :(得分:5)

是的,两个条件都必须为真。

  

Rule Conditions

     

条件在重写集合中定义   规则。该集合有一个名为logicalGrouping的属性   控制如何评估条件。如果规则有条件,那么   只有在匹配规则模式时才会执行规则操作:

     
      
  • 所有条件都评估为真,只要这样做   logicalGrouping="MatchAll"被使用了。
  •   
  • 至少有一个条件   如果logicalGrouping="MatchAny"是,则评估为真   使用。
  •   

Doc不清楚默认使用哪个逻辑分组,但我可以说它是MatchAll

换句话说,<conditions><conditions logicalGrouping="MatchAll">相同。