1

We currently have URLs like:

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

that I need redirected to:

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

Using the HTTP Redirect module in IIS I've been able to forward requests from https://tfs.mydomain.com to https://dev.azure.com/MyOrg without any issue.

The problem is that when it's a deep link, I need to remove the /tfs/MyProjectCollection portion of the link when redirecting it. With my current setup of just redirecting the root domain, a request to:

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

ends up getting redirected to:

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

instead of the desired:

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

This is what my web.config currently looks like:

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

How can I strip out the /tfs/MyProjectCollection portion of the URL when redirecting it?


Update: I have also tried installing the URL Rewrite module and setting up my web.config like this, but still have the same results.

<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

I figured out the answer by stumbling across this similar question. Using the IIS URL Rewrite module, this is what my web.config now looks like to do what I want. Note that the order of the rules does matter (most specific to least specific):

<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>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.