I am looking at using IIS Rewrite Module 2.0 to redirect some broken application links.
Previously www.mydomain.com was our corporate site and www.mydomain.com/application1, www.mydomain.com/application2 were other applications our customers used. They were all on the same server.
Now we are having our corporate site updated and moved to another server. So www.mydomain.com and mydomain.com resolve to a different server. As part of this work, a subdomain of app.mydomain.com was created to house the customer applications still residing on our server.
What I want to be able to do is install the rewrite module on the new corporate site's server and redirect www.mydomain/application1 or mydomain.com/application1 to app.mydomain.com/application1.
I have the list applications so maybe using a rewriteMap is the way to go? That would prevent any redirects like www.mydomain.com/newcorporateurl being wrongly redirected. I also need to preserve subfolders and querystrings (due to people having browser bookmarks) like www.mydomain.com/application1/index.aspx?id=1 needs to go to app.mydomain.com/application1/index.aspx?id=1
Any help putting this together would be great! Even just getting the basic config sorted so I can have a play with it and understand it a bit more. I have been browsing other questions and resources but am still struggling how to put this together
Update 1
The below doesn't work but hopefully it demonstrates what I am trying to do. I have about 15 or applications I need to redirect in this way.
<rewrite>
<rules>
<rule name="application1 rule" stopProcessing="true">
<match url="(www\.)?mydomain\.com(:80)?/application1/?" />
<action type="Redirect" url="app.mydomain.com/application1/" appendQueryString="false" />
</rule>
<rule name="application2 rule" stopProcessing="true">
<match url="(www\.)?mydomain\.com(:80)?/application2/?" />
<action type="Redirect" url="app.mydomain.com/application2/" appendQueryString="false" />
</rule>
</rules>
</rewrite>
Update 2
I have this working to an extent
<rewrite>
<rules>
<clear />
<rule name="application1 rule" stopProcessing="true">
<match url="application1(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="mydomain.com" />
</conditions>
<action type="Redirect" url="http://app.mydomain.com/application1{R:1}" />
</rule>
</rules>
</rewrite>
This will redirect
www.mydomain.com/application1 -> app.mydomain.com/application1 www.mydomain.com/application1/index.aspx -> app.mydomain.com/application1/index.aspx
The issue I want to resolve now is this.
The new site at www.mydomain.com is a CMS. With the above rule, it means the CMS can't contain 'application1' at all in the URI.
Real world example is 'commercial'
Can someone please help refining my rule so the following is true
www.mydomain.com/commercial -> app.mydomain.com/commercial www.mydomain.com/commercial/foo/index.aspx -> app.mydomain.com/foo/index.aspx
www.mydomain.com/tv-commercials/list -> www.mydomain.com/tv-commercials/list www.mydomain.com/commercial-property/list -> www.mydomain.com/commercial-property/list
app
) Have you tried anything so far? – cheesemacfly