301转向

来自站长百科
跳转至: 导航、​ 搜索

什么是301转向[ ]

301转向(或叫301重定向,301跳转)是当用户或搜索引擎网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。

使用 301 重定向将您原来网站上的所有网页永久重定向至新网站。 这可以告诉搜索引擎和用户您的网站已永久迁移。是符合搜索引擎友好的,目前最安全的网址域名更换。

请不要将原来网站的所有网页都定向到新网址的主页。虽然这样可以避免 404 错误,但并非良好的用户体验。建议将旧网址的网页对应到新网址同目录同名称的网页,网页对网页的重定向将有助于保持您的网站在 Google上的排名,同时还能提供一种一致且直观的用户体验。

如果您新旧网站的网页无法一一对应,可尝试确保您原来网站上的每一个网页至少会重定向至一个具有相似内容的新网页。

301的另个重要用处是网址规范化。即选择你希望的唯一的首页网址。

301转向在seo中的作用[ ]

网址转向方法主要包括:301转向,302转向JavaScript转向PHP/ASP/CGI转向,META REFRESH网页META刷新,等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。

当网页A用301重定向转到网页B时,搜索引擎可以肯定网页A永久的改变位置,或者说实际上不存在了,搜索引擎就会把网页B当作唯一有效目标。好处是,第一,没有网址规范化问题,第二,也很重要的,网页A的PR网页级别会传到网页B。

很多时候其它网站会链接到

http://domainname.com http://www.domainname.com/index.html http://domainname.com/index.html

而不是你希望的

http://www.domainname.com

这样链接的PR也会传递到所有URL,如果你用301转向把前三个URL转到

http://www.domainname.com

PR也就集中在网页http://www.domainname.com了。

如何实现301转向[ ]

用.htaccess实现301转向[ ]

  • 文件及目录转向

比如把/old.htm转到http://www.domain.com/new.htm,可以用这个指令:

redirect 301 /old.htm http://www.domain.com/new.htm

redirect permanent /old.htm http://www.domain.com/new.htm

redirect也可以实现目录的转向,例如要将http://www.idcspy.com/bbs 转向到 http://bbs.idcspy.com 可以用: redirect 301 /bbs http://bbs.idcspy.com

  • 规范www

全部统一到 www.zzbaike.com (带www)

 RewriteEngine on
 RewriteCond %{HTTP_HOST} ^zzbaike\.com$ [NC]
 RewriteRule ^(.*)$ http://www.zzbaike.com/$1 [L,R=301]

使用时将上面的zzbaike.com 替换为你使用的域名即可

全部统一到 zzbaike.com (不带www,目前的新趋势)

RewriteEngine on
 RewriteCond %{HTTP_HOST} ^www\.zzbaike\.com$ [NC]
 RewriteRule ^(.*)$ http://zzbaike.com/$1 [L,R=301]

使用时将上面的zzbaike.com 替换为你使用的域名即可

RewriteEngine On
 RewriteRule ^(.*)$ http://www.newdomain.com/ [R=301,L]

这个是都转向到新域名的首页

如果要做目录及文件转向用:

RewriteEngine On
 RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

上面的代码就可以将 http://www.idcspy.com/bbs/forum-51-1.html 这样类型的url转向到 http://bbs.idcspy.com/forum-51-1.html

PHP实现301重定向[ ]

在 index.php 的最上面加入以下几行:

  <?php
   header("HTTP/1.1 301 Moved Permanently");
   header("Location: http://www.newdomain.com/");
   exit();
   ?>

用PHP进行301重定向的坏处是无法进行目录的重定向

ASP实现301重定向[ ]

在 index.asp 或 default.asp 的最上面加入以下几行:

<% Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://www.newdomain.com/" Response.End %>

静态网页实现301重定向[ ]

HTML无法做[htaccess]的301转向。在HTML里只能做JS或META REFRESH,但不是301转向。HTML一被读取,就已经返回200 OK状态码了。 不过可以在主机商提供的工具里实现,登陆你的主机空间,进入cpanel(操作面板),找到“redirect”功能选项,填写将本网址指向其他网址。

举例:

  1. 如果是首页指向首页 http://www.aaa.com 指向 http://www.bbb.com
  2. 如果是网站内某一页指向首页 http://www.aaa.com/123344.htm 指向 http://www.bbb.com
  3. 指向相对应的新域名的同一目录下的文件名 http://www.aaa.com/123344.htm 指向 http://www.bbb.com/123344.htm
  4. 把旧站的所有网页都指向首页 http://www.aaa.com/* 指向 http://www.bbb.com
  5. 把旧站的所有网页都指向新站相同目录相同名称的网页(即一一对应) http://www.aaa.com/* 指向 http://www.bbb.com/*

此种方法适用于动态网站和静态网站。

301重定向的后续工作[ ]

后续工作,登陆google网站管理,重新提交sitemap,头几次google可能因为发现访问旧站的的sitemap却进入另一个站sitemap,属于域名错误,提示网址不可用。报错。这个正常,再提交几次google就会发现301转向了,错误就会取消。 在网站管理添加新站,提交新站的sitemap。选择搜索引擎按照有www或者无www来索引。(建议含www,同时无www也能访问)

过会去看看旧站的访问记录,就会发现 无论是访客,还是搜索引擎,进入网页都显示的是 http code 301。

成功。

建议旧站维持至少半年,之后再撤下。


相关条目[ ]

参考来源[ ]