当URL包含www时,我需要重定向到另一个网站。并且查询字符串与特定值不匹配。无论情况如何,我总是会被重定向
<rewrite>
<rules>
<rule name="Redirect to Landing Page" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_Host}" pattern="www.dev.MyWebpage.com/MCPrivacyNotice" negate="true" />
</conditions>
<action type="Redirect" url="https://www.myWebPage.com" />
</rule>
</rules>
</rewrite>
答案 0 :(得分:1)
正如您所描述的,因此您需要在以下时间重定向
www.dev.MyWebpage.com
/MCPrivacyNotice
所以我认为这可能是您的答案
<rule name="Redirect to Landing Page" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="www.dev.MyWebpage.com" />
<add input="{REQUEST_URI}" pattern="/MCPrivacyNotice" negate="true" />
</conditions>
<action type="Redirect" url="myWebPage.com" />
</rule>
请注意,logicalGrouping="MatchAll"
可以匹配所有条件。在您的问题和更新中,您使用了logicalGrouping="MatchAny"
,这意味着来自域www.dev.MyWebpage.com
的每个请求都将被重定向
还有一件事,/MCPrivacyNotice
是{REQUEST_URI}
或PATH_INFO
而不是QUERY_STRING
,您应该选择正确的模块。检查此内容以获得详细信息https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference
希望这会有所帮助