Правило перезаписи IIS не передает параметры

В настоящее время у меня настроены перенаправления для перехода с oldsite.com на newsite.com с использованием карты перезаписи. Они работают, кроме случаев, когда параметр передается через URL-адрес, например. http://oldsite.com?utm_source=go.wayne.edu&utm_medium=direct&utm_campaign=quick-access&utm_content=, по-прежнему переходит на старую страницу вместо перенаправления на новую страницу с параметрами, например. http://newsite.com?utm_source=go.wayne.edu&utm_medium=direct&utm_campaign=quick-access&utm_content=.

Вот мой код:

            <rule name="Redirects to New Site">
                    <match url="(.*)" />
                    <conditions trackAllCaptures="true">
                        <add input="{RelaunchRedirects:{REQUEST_URI}}" pattern="(.+)" />
                    </conditions>
                    <action type="Redirect" url="http://newsite.com/{C:0}" appendQueryString="true" redirectType="Permanent" />
            </rule>

Все еще очень новичок во всем этом, и я не могу понять, почему параметры не передаются. Я видел здесь несколько подобных случаев, но не смог заставить эти решения работать на меня.

Есть идеи, что я могу сделать, чтобы эта работа работала?


person Mel Mills    schedule 05.02.2021    source источник


Ответы (1)


Вы можете попробовать использовать это правило перезаписи URL:

       <rewrite>
            <rules>
                 <rule name="Redirects to New Site" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions trackAllCaptures="true">
                    </conditions>
                    <action type="Redirect" url="http://newsite.com{URL}" appendQueryString="true" redirectType="Permanent" />
            </rule>
            </rules>
        </rewrite>

введите описание изображения здесь

Не стесняйтесь, дайте мне знать, если возникнут какие-либо вопросы.

person Ding Peng    schedule 06.02.2021
comment
Большое спасибо! Это очень близко к тому, что я хочу сделать, однако обновленный код игнорирует карту перезаписи со всеми перенаправлениями. Как я могу включить переписывание в то, что у вас здесь, и добиться того же результата? - person Mel Mills; 09.02.2021
comment
Вы имеете в виду, что ваш код аннулирует правило перезаписи URL? - person Ding Peng; 10.02.2021
comment
Спасибо! Нет, я имею в виду, что строка <add input="{RelaunchRedirects:{REQUEST_URI}}" pattern="(.+)" /> ссылок - это карта перезаписи, содержащая все перенаправления. Если мы удалим эту строку, мы также удалим список перенаправлений. Карта перезаписи - это, по сути, список перенаправлений со старого пути на новый. Мы хотим оставить эту карту перезаписи на месте, но все же иметь параметры для добавления, как в вашем решении. Я просто не знаю, как совместить эти два метода. - person Mel Mills; 12.02.2021