301 转向
- 什么是 301 转向
301 转向(或叫 301 重定向、301 跳转)是浏览器或蜘蛛向网站服务器发出访问请求时,服务器返回的 HTTP 数据流中头信息(header)部分状态码的一种,表示本网址永久性转移到另一个地址。
其他常见的状态码如下。
- 200:一切正常。
- 404:网页不存在。
- 302:临时性转向。
- 500:内部程序错误。
网址转向还有其他方法,如 302 转向、JavaScript 转向、PHP/ASP/CGI 程序转向、 Meta Refresh 转向等。除了 301 转向,其他方法都是常用的作弊手法。虽然方法本身没有对错之分,但被作弊者用多了,搜索引擎对可疑的转向都很敏感。
2.301 转向传递权重
网页 A 使用 301 重定向转到网页 B,搜索引擎可以肯定网页 A 永久性改变了地址,或者说实际上不存在了,就会把网页 B 当作唯一有效 URL。这是搜索引擎唯一推荐的不会产生怀疑的转向方法,更重要的是,网页 A 积累的页面权重将被传递到网页 B。
所以,假定 http://www.domainname.com 是选定的规范化网址,下面几个网址:
- http://domainname.com
- http://www.domainname.com/index.html
- http://domainname.com/index.html
都做 301 转向到 http://www.domainname.com,搜索引擎就知道 http://www.domainname. com 是规范化网址,而且会把上面列的网址权重传递集中到规范化网址。
目前 Google 会传递大部分权重,但不是传递百分之百的权重。百度会传递所有权重。 Google 对 301 转向的识别、反应、完成权重传递,需要 1~3 个月时间。百度对 301 转向的处理则比较保守,新旧 URL 会同时存在于索引库很长时间,经常看到做了 301 转向数年的 URL 还出现在百度搜索结果中。
3.怎样做 301 转向
如果网站使用 LAMP(Linux+Apache+MySQL+PHP)主机,可以使用.htaccess 文件做 301 转向。.htaccess 是一个普通文字文件,通过 Notepad 等文字编辑软件创建和编辑,之后保存在网站根目录下。.htaccess 文件中的指令用于目录特定操作,如密码保护、转向、错误处理等。
比如把页面/old.htm 301 转向到 http://www.domain.com/new.htm,可以在.htaccess 文件中放上这个指令:
或
把所有不带 www(http://domain.com)版本的网址 301 转向到带 www 的版本
(http://www.domain.com),包括:http://domain.com/about.htm 转到http://www.domain.com/about.htm,以及 http://domain. com/dir/index.htm 转到 http://www.domain.com/dir/index.htm 等,还要用到 mod_rewrite 模块,.htaccess 文件指令是:
如果网站使用的是 Windows 主机,可以在控制面板做 301 转向设定。
纯静态 HTML 页面无法通过 HTML 文件本身做 301 转向,HTML 一被读取,就已经返回 200 状态码了。在 HTML 里能做 JavaScript 转向或Meta Refresh 转向。
如果页面是 ASP 或 PHP,还可以做 301 转向。
ASP 代码:
PHP 代码:
4.301 转向的其他用途
除了解决网址规范化问题,还有很多需要做 301 转向的情形。比如,为保护版权,公司拥有不同 TLD 的多个域名:
- company.com
- company.net
- company.org
- company.com.cn
- company.cn
为避免造成大量复制内容,应该选定一个域名为主域名,如 company.com,将其他域名做 301 转向到 company.com。
或者公司注册了全称域名 longcompanyname.com,也注册了方便用户记住的缩写域名 lcn.com,可将其中一个做主域名,另一个 301 转向到主域名。
网站改版也经常需要用到 301 转向,如页面删除、改变地址、URL 命名系统改变等。更换域名也需要整站从旧域名做 301 转向到新域名。
动态 URL 静态化也可能要做 301 转向,将旧的、动态的 URL 做 301 转向到新的、静态的 URL。
本文档为站内渲染。原始文件本地路径:saas/source/seo-llm/SEO实战密码-markdown-第04章-网站结构优化-网址规范化-301-转向-ba901f.md(仅本地保留,不入库不部署)