代码改变世界

IIS URL Rewrite redirect from one Domain to another

2015-10-21 23:36  zhangpengc  阅读(432)  评论(0编辑  收藏  举报

IIS URL Rewrite enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find.
For more information you can read the below url: http://www.iis.net/downloads/microsoft/url-rewrite

See the below example redirect from one Domain to another:

 

IIS URL Rewrite will add the rewrite rules into web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Domain switch" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="(www.)?site1.com" />
                    </conditions>
                    <action type="Redirect" url="http://www.site2.nl/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

 

How can we skip the "/page" when we redirect one Domain to another?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Domain switch" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="(www.)?site1.com" />
                        <add input="{URL}" pattern="^/page.*" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://www.site2.nl/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

 

How can we redirect non-www to www?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect non-www to www" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^site.com$" />
                    </conditions>
                    <action type="Redirect" url="http://www.site.com/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>