由于要给一个网站更换新的域名,考虑到保留网站现有的搜索排名,而且希望访客访问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 Railsdef old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.新的网址.com/"
end
个人觉得服务器上的301转向比脚本转向更加一劳永逸,只需简单设置或是一个文件即可实现整个网站所有文件的转向。