В настоящее время у нас есть 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>
Я нашел ответ, наткнувшись на этот похожий вопрос . Используя модуль 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>