Перенаправить URL-адрес в IIS на другой домен и удалить части URL

В настоящее время у нас есть URL-адреса типа:

https://tfs.mydomain.com/tfs/MyProjectCollection/Project/_workitems

, которые мне нужно перенаправить на:

https://dev.azure.com/MyOrg/Project/_workitems

Используя модуль перенаправления HTTP в IIS, я смог перенаправить запросы с https: // tfs.mydomain.com на https://dev.azure.com/MyOrg без каких-либо проблем.

Проблема в том, что когда это глубокая ссылка, мне нужно удалить / tfs / MyProjectCollection часть ссылки при ее перенаправлении. С моей текущей настройкой перенаправления корневого домена запрос на:

https://tfs.mydomain.com/tfs/MyProjectCollection/Project/_workitems

в конечном итоге перенаправляется на:

https://dev.azure.com/MyOrg/tfs/MyProjectCollection/Project/_workitems

вместо желаемого:

https://dev.azure.com/MyOrg/Project/_workitems

Вот как сейчас выглядит мой web.config:

<configuration>
    <system.webServer>
        <httpRedirect enabled="true" destination="https://dev.azure.com/MyOrg" httpResponseStatus="Permanent" />
    </system.webServer>
</configuration>

Как могу ли я удалить часть URL-адреса / tfs / MyProjectCollection при его перенаправлении?


Обновление: я также пробовал установить модуль URL Rewrite и настроить свой web.config таким образом, но у меня все еще есть те же результаты.

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="IQProjectCollection" stopProcessing="true">
                    <match url="^tfs/IQProjectCollection$" />
                    <action type="Redirect" url="https://dev.azure.com/iqmetrix" />
                </rule>
                <rule name="tfs" stopProcessing="true">
                    <match url="^tfs$" />
                    <action type="Redirect" url="https://dev.azure.com/iqmetrix" />
                </rule>
                <rule name="home" stopProcessing="true">
                    <match url="^$" />
                    <action type="Redirect" url="https://dev.azure.com/iqmetrix" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
1
задан 13 January 2019 в 20:35
1 ответ

Я нашел ответ, наткнувшись на этот похожий вопрос . Используя модуль IIS URL Rewrite, мой файл web.config теперь выглядит так, чтобы делать то, что я хочу. Обратите внимание, что порядок правил имеет значение (от наиболее конкретного к наименее конкретному):

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="IQProjectCollection" stopProcessing="true">
                    <match url="^tfs/MyProjectCollection/(.*)" />
                    <action type="Redirect" url="https://dev.azure.com/MyOrg/{R:1}" />
                </rule>
                <rule name="tfs" stopProcessing="true">
                    <match url="^tfs/(.*)" />
                    <action type="Redirect" url="https://dev.azure.com/MyOrg/{R:1}" />
                </rule>
                <rule name="home" stopProcessing="true">
                    <match url="^$" />
                    <action type="Redirect" url="https://dev.azure.com/MyOrg" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
1
ответ дан 3 December 2019 в 23:08

Теги

Похожие вопросы