我在配置文件中的 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>
在这种情况下,在两个条件下,规则如何运作?这两个条件都必须为真吗?
是的,这两个条件都必须为真。
规则条件
条件在重写集合中定义 统治。此集合具有称为逻辑分组的属性,该属性 控制如何评估条件。如果规则有条件,则 仅当规则模式匹配且
:
- 所有条件均评估为 true,前提是 使用了
logicalGrouping="MatchAll"
。- 至少一个条件 被评估为 true,前提是
logicalGrouping="MatchAny"
使用。
该文档不太清楚默认情况下要使用哪种逻辑分组,但我可以说它是MatchAll
.
换句话说,<conditions>
与<conditions logicalGrouping="MatchAll">
相同。