IIS URL Rewrite + Redirect + не соответствует строке запроса - PullRequest
1 голос
/ 08 июля 2019

Мне нужно перенаправить на другой сайт, когда 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 Ответ

1 голос
/ 09 июля 2019

Как вы описали, поэтому вам нужно перенаправить, когда

  • Домен 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

Надеюсь, это поможет

...