IIS中重写规则的多个条件

Igo*_*hov 2 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>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,规则如何在两个条件下工作?这两个条件一定是真的吗?

Kul*_*gin 8

是的,两个条件都必须是真的.

规则条件

条件在重写规则的集合中定义.此集合具有名为logicalGrouping的属性,该属性控制如何评估条件.如果规则具有条件,则仅当匹配规则模式时才会执行规则操作,并且:

  • 如果使用的话,所有条件都评估为真 logicalGrouping="MatchAll".
  • 如果使用的话,至少有一个条件被评估为真logicalGrouping="MatchAny".

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

换句话说,<conditions>就是一样<conditions logicalGrouping="MatchAll">.