利用“301”HTTP头给网站更换域名

由于要给一个网站更换新的域名,考虑到保留网站现有的搜索排名,而且希望访客访问http://旧网站.com/somepage.html可以直接跳转到http://新网站.com/somepage.html,于是决定采用“301”HTTP头来做转向。

由于网站属于Linux空间+Apache服务器(支持Mod-Rewrite模块),所以采用.htaccess文件来控制“301”HTTP头的转向,创建内容如下:
Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://www.新的网址.com/$1 [R=301,L]

下面是一些其他实现301转向的办法:

IIS服务器上的设置

* 在需要转向的文件或者目录上点击鼠标右键
* 选择“转向到其他网址”
* 输入新的转向网址
* 选择永久转向
* 点击应用即可

ColdFusion
<.cfheader statuscode="301" statustext="Moved permanently"> <.cfheader name="Location" value="http://www.新的网址.com">

PHP
<?php Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.新的网址.com" ); ?>

ASP
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://www.新的网址.com/" %>

ASP .NET
<script runat="server"> private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.新的网址.com"); } </script>

JSP (Java)
<% response.setStatus(301); response.setHeader( "Location", "http://www.新的网址.com/" ); response.setHeader( "Connection", "close" ); %>

CGI PERL
$q = new CGI; print $q->redirect("http://www.新的网址.com/");

Ruby on Rails
def old_action headers["Status"] = "301 Moved Permanently" redirect_to "http://www.新的网址.com/" end

个人觉得服务器上的301转向比脚本转向更加一劳永逸,只需简单设置或是一个文件即可实现整个网站所有文件的转向。