我在配置文件中的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>
在这种情况下,规则如何在两个条件下起作用?两个条件都必须是真的吗?
答案 0 :(得分:5)
是的,两个条件都必须为真。
条件在重写集合中定义 规则。该集合有一个名为logicalGrouping的属性 控制如何评估条件。如果规则有条件,那么 只有在匹配规则模式时才会执行规则操作:
- 所有条件都评估为真,只要这样做
logicalGrouping="MatchAll"
被使用了。- 至少有一个条件 如果
logicalGrouping="MatchAny"
是,则评估为真 使用。
Doc不清楚默认使用哪个逻辑分组,但我可以说它是MatchAll
。
换句话说,<conditions>
与<conditions logicalGrouping="MatchAll">
相同。