Search code examples
http-redirecturl-rewritingdnsweb-configumbraco

Re-write old url to new url Asp.Net


I have 2 domains pointing to the same Umbraco application:

oldexample.com
newexample.com

I want my application to change the URL from:

oldexample.com/... 
TO 
newexample.com/... 

when people visit the oldexample.com.

In my web.config, I've placed this, but to no effect:

<rewrite>
    <rules>
        <rule name="Redirect old-domain to new-domain" stopProcessing="true">
            <match url=".*" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^oldexample.com$" />
            </conditions>
            <action type="Redirect" url="http://www.newexample.com/{R:0}" appendQueryString="true" redirectType="Permanent" />
        </rule>
        <rule name="WWW Rewrite" enabled="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" negate="true" pattern="^www\." />
                <add input="{HTTP_HOST}" negate="true" pattern="localhost" />
            </conditions>
            <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

What am I doing wrong?

// The application is hosted in Azure web sites. And both URLs are hostnames assigned to the site.


Solution

  • <rewrite>
      <rules>
        <rule name="Redirect oldexample.com to newexample.com" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
            <add input="{HTTP_HOST}" pattern="^www\.oldexample\.com$" />
            <add input="{HTTP_HOST}" pattern="^oldexample\.com$" />
          </conditions>
          <action type="Redirect" url="http://www.newexample.com/{R:1}" />
        </rule>
      </rules>    
    </rewrite>