URL Перезаписать обратную ссылку. Действие URL не работает - PullRequest
0 голосов
/ 24 октября 2018

Я установил правило перезаписи URL для перенаправления из одного домена в другой в случае соответствия условию.У меня есть сайт abc.aaa.com, который следует перенаправить на abc.bbb.com, если URL совпадает с * .aaa.com.Когда я жестко программирую URL-адрес действия, он работает нормально, но с помощью обратной ссылки он не работает.
Я использую IIS 8.5

Ниже приведены правила.Это не работает.Когда я делаю, этот URL показывает http://abc.aaa.com/abc.bbb.com

<rule name="Redirect aaa.com" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
       <add input="{HTTP_HOST}" pattern="(.*).aaa.com(.*)$" />
    </conditions>
    <action type="Redirect" url="{C:1}.bbb.com{C:2}" appendQueryString="false" />
</rule> 

Это работает

<rule name="Redirect aaa.com" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
       <add input="{HTTP_HOST}" pattern="(.*).aaa.com(.*)$" />
    </conditions>
    <action type="Redirect" url="http://abc.bbb.com" appendQueryString="false" />
</rule>

Я пробовал тот же шаблон в шаблоне правила и то же действие без условия.это тоже не работает

<rule name="Redirect aaa.com" enabled="true" stopProcessing="true">
    <match url="(.*).aaa.com(.*)$" />
    <action type="Redirect" url="http://abc.bbb.com" appendQueryString="false" />
</rule>

1 Ответ

0 голосов
/ 25 октября 2018

Я обнаружил, что {C: 1} не содержит http: // part, и отделил это в действии URL.Это работает нормально. Ниже приведено измененное правило. Спасибо Лексу Ли за быстрый ответ

<rule name="Redirect aaa.com" enabled="true" stopProcessing="false">
    <match url="(.*)" />
    <conditions>
                        <add input="{HTTP_HOST}" pattern="(.*).aaa.com(.*)$" />
    </conditions>
    <action type="Redirect" url="http://{C:1}.bbb.com{PATH_INFO}" appendQueryString="true" />
</rule>
...