301重定向是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。301重定向主要是将需要转移的网址重定向另一个新的网址上,并且是永久性转移。当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而受到丝毫影响301重定向无疑是最佳的办法。
一:通过.htaccess做重定向
重定向旨在使域名唯一,是网站SEO必须要做的,重定向www.zhishitu.com到 zhishitu.com也是出于同样的原因,只是形式不同。
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)
1.重定向zhishitu.com到 www.zhishitu.comRewriteEngine On RewriteCond %{HTTP_HOST} ^zhishitu.com [NC] RewriteRule ^(.*)$ http://www.zhishitu.com/$1 [L,R=301]
2.重定向www.zhishitu.com到zhishitu.comRewriteEngine On RewriteCond %{HTTP_HOST} !zhishitu.com$ [NC] RewriteRule ^(.*)$ http://zhishitu.com/$1 [L,R=301]
3.重定向zhishilun.com到www.zhishitu.comRewriteEngine On RewriteCond %{HTTP_HOST} !zhishilun.com$ [NC] RewriteRule ^(.*)$ http://www.zhishitu.com/$1 [L,R=301]
4.重定向 zhishilun.com to zhishitu.comRewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !zhishilun.com$ [NC] RewriteRule ^(.*)$ http://zhishitu.com/$1 [L,R=301]
5.重定向zhishilun.com/file/file.php 到 zhishitu.com/otherfile/other.phpRewriteCond %{HTTP_HOST} ^www.zhishilun.com$ RewriteRule ^file/file.php$ http://www.zhishitu.com/otherfile/other.php [R=301,L]
二:通过PHP做301重定向
1.PHP下的301重定向$the_host = $_SERVER['REQUEST_URI'];//取得当前域名 $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] :'';//判断地址后面是否有参数 if($the_host != 'www.xncre.com')//把这里的域名换上你想要的 { header('HTTP/1.1 301 Moved Permanently');//发出301头部 header('Location: http://www.xncre.com'.$request_uri);//跳转到你希望的地址格式 }
2.ASP下的301重定向
第一步、建立301.asp内容如下:
将301.asp上传到网站根目录,并在虚拟主机控制面板将301.asp添加到默认首页最前面!
3.ASP .NET下的301重定向
在index.aspx中写入如下代码并上传空间。//判断是否是www.开头,如果不是301调整到www.域名if (!System.Web.HttpContext.Current.Request.Url.ToString().StartsWith “http://www.”)) {//301 重定向到 /目录下 HttpContext.Current.Response.StatusCode = 301;HttpContext.Current.Response.Status = “301 Moved Permanently”;HttpContext.Current.Response.AddHeader(“Location”,“http://www.zhishitu.com/”);HttpContext.Current.Response.End();}//注意,以上代码只适合动态网站,静态网站无效!
4、JSP下的301重定向
关于网站如何用程序做301永久重定向,就说这么多,301永久重定向其他方法还有很多,有兴趣可以自己网上找下。
提示:如果返回报头中只有Location,但没有明确提到状态代码时,就意味着一个302临时重定向。请谨记于心。例如下面都是302重定向:
PHP 下的302重定向 php header("Location: http://www.zhishitu.com");?>
Asp 下的302重定向
ASP.NET 302重定向
JSP 下的302重定向
总结:301重定向是一种对搜索引擎最友好的网址转向方法。在众多重定向技术中,301永久性重定向是最为安全的一种途径,也是极为理想的一款解决方案。无论是URL永久性改变,还是多种格式URL规范化都离不开301重定向。