我正在尝试在 web.config 中添加 iis url 重写规则。规则应该如下。
如果url不包含www,则重定向到www 但是,如果主机包含“svha-prd-as-careservices-01”,则不要重定向到 www
下面是我的代码,www 重定向正在工作,但是,检查“svha-prd-as-careservices-01”的否定条件不起作用。我错过了什么?
<rule name="Redirect Non-WWW to WWW" enabled="true" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)" />
<add input="{REQUEST_HOST}" pattern="^(.*)svha-prd-as-careservices-01(.*)" negate="true" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="true" />
<rule name="Redirect Non-WWW to WWW" enabled="true" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)" />
<add input="{REQUEST_HOST}" pattern="^(.*)svha-prd-as-careservices-01(.*)" negate="true" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="true" />
</rule>
默认情况下,
logicalGrouping
设置为 MatchAll
,它充当所有条件之间的逻辑 AND。所以你需要改变它。