IIS URL重写+重定向+与查询字符串不匹配

时间:2019-07-08 10:22:00

标签: redirect iis url-rewriting iis-7.5 iis-10

当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>

1 个答案:

答案 0 :(得分:1)

正如您所描述的,因此您需要在以下时间重定向

  • 域为www.dev.MyWebpage.com
  • 请求uri为/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

希望这会有所帮助