域名更改后301重定向

时间:2013-07-02 12:42:32

标签: asp.net redirect iis-7 http-status-code-301

我在IIS上运行一个小型ASP.NET4网站。我最近将域名从'olddomain.com'更改为'newdomain.com'。这一变化是通过Plesk完成的。在进行更改后,我在plesk中添加了“olddomain.com”作为域别名,以便流量仍然可以路由到旧域上的网站。

到目前为止这很好。该网站解析旧网址和新网址。

但是,现在我想在任何地方设置301重定向,以便将olddomain.com的任何请求转发到newdomain.com。没有任何网站页面发生过变化 - 这只是一个简单的域名更改。

我已将此添加到web.config文件中:

<rewrite>
    <rules>
        <rule name="Redirect all to different domain" stopProcessing="true">
            <match url=".*" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^olddomain.com$" />
            </conditions>
            <action type="Redirect" url="http://www.newdomain.com/{R:0}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>  

但它似乎没有任何影响;当我在浏览器中加载olddomain.com时,它只是加载网站而不重定向到newdomain.com。

有人能说出我在这里做错了什么,以及如何让301工作?

由于

2 个答案:

答案 0 :(得分:2)

这有效:

<rule name="redirectDomain" stopProcessing="true">
    <match url="(.*)" />
    <action type="Redirect" url="http://www.newdomain.com/{R:1}" redirectType="Permanent" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="^(www.)?olddomain\.com$" />
    </conditions>
</rule>

答案 1 :(得分:0)

您也可以从IIS设置301永久重定向。

如果在旧服务器上启用了http重定向,则必须使用内容 -

添加新的Web配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpRedirect enabled="true" destination="http://mynewsite.com/" httpResponseStatus="Permanent" />
    </system.webServer>
</configuration>

如果有帮助,请告诉我。