301转向(重定向)的作用以及实现方法分享
什么是301转向?
301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。
为什么要用301转向?
网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新,等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。
当网页A用301重定向转到网页B时,搜索引擎可以肯定网页A永久的改变位置,或者说实际上不存在了,搜索引擎就会把网页B当作唯一有效目标。好处是,第一,没有网址规范化问题,第二,也很重要的,网页A的PR网页级别会传到网页B。
怎样做301转向?
一、IIS服务器实现301重定向
* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键
* 选择“重定向到URL”
* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址
* 选中“资源的永久重定向”(切记)
* 最后点击“应用”
二、Apache服务器实现301重定向
相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。
redirect permanent /index.php http://www.wendabaike.com/index.php?go=category_6(将网页index.php重定向到http://www.wendabaike.com/index.php?go=category_6)
通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。
三、PHP下的301重定向
<? Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.wendabaike.com" );?>
四、ASP下的301重定向
<%@ Language="VBScript" %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.wendabaike.com"
%>
五、ASP .NET下的301重定向
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location",http://www.638300.com);
}
</script>
六、ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader value="http://www.wendabaike.com"> 旧域名重定向到新域名
七、创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。
记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.fabu114.com/$1 [R=301,L]
请将上面的www.fabu114.com修改成你想要跳转到的域名。
此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用
域名301重定向到www的二级域名
在以前的文章中我反复提及过:www.domain.com是domain.com域下的一个二级域名,并对二级域名和一级目录之间如何选择以及网站结构优化做了一个详细的分析,有兴趣的可以读一下两篇文章,网站结构优化是SEO中最重要。
八、OK,继续域301跳转到www二级域的实现方式:
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用
九、静态网页实现301重定向
HTML无法做[htaccess]的301转向。在HTML里只能做JS或META REFRESH,但不是301转向。HTML一被读取,就已经返回200 OK状态码了。不过可以在主机商提供的工具里实现,登陆你的主机空间,进入cpanel(操作面板),找到“redirect”功能选项,填写将本网址指向其他网址。
举例:
如果是首页指向首页 http://www.aaa.com 指向 http://www.bbb.com
如果是网站内某一页指向首页 http://www.aaa.com/123344.htm 指向 http://www.bbb.com
指向相对应的新域名的同一目录下的文件名 http://www.aaa.com/123344.htm 指向 http://www.bbb.com/123344.htm
把旧站的所有网页都指向首页 http://www.aaa.com/* 指向 http://www.bbb.com
把旧站的所有网页都指向新站相同目录相同名称的网页(即一一对应) http://www.aaa.com/* 指向 http://www.bbb.com/*
此种方法适用于动态网站和静态网站。