301转向和网址规范化
作者:Zac@SEO每天一贴 来源:中新虚拟主机 时间:2007-09-26 14:00:00
写了网址规范化后,尚奇公司的柳先生建议再深入讨论一下301转向/重定向。下面就谈谈我所了解的301转向在搜索引擎优化方面的应用。
什么是301转向?
301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。
为什么要做网址转向?
除了前面介绍过的网址规范化问题外,还有很多需要做网址转向的情形。比如,为保护版权,你拥有不同TLD的多个域名:
company.com
company.net
company.org
company.com.cn
company.cn
等等。
很自然这些域名全部指向一个网站。如用company.com为主域名,其它域名就可以转向到company.com。
或者你注册了公司全称域名longcompanyname.com,但太长 ,你也注册了缩写域名方便用户记住lcn.com,其中一个做主域名,另一个就可以转向到主域名。
为什么要用301转向?
网址转向方法主要包括: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转向排名也没影响,那就别动它。
如果你觉得网站排名没有预想的好,可以看看是否有网址规范化问题:
1) 查一下这些URL是否都有差不多的PR值和网页快照:
http://domainname.com
http://www.domainname.com/index.html
http://domainname.com/index.html
http://www.domainname.com
如果是,那可能有问题。
2)搜一下site:domain.com看是否结果中有多个主页版本。
3)你的网站是否在Google有大量网页被标为“ 补充材料”(Supplemental Result)。一般认为被归为“ 补充材料”是网址规范化问题的征兆。
怎样做301转向
如果你用的是Unix/Linux主机,可以用文件(Unix/Linux中用于目录特定指令如密码,转向,错误处理等的文件)。
比如把/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
如果要把所有http://domain.com形式的URL用301重定向转到 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:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
如果你用的是 Windows主机,应该在控制面板做301转向设定。
据我所知,HTML无法做301转向。在HTML里只能做JS或META REFRESH,但不是301转向。HTML一被读取,就已经返回200 OK状态码了。
如果你的页面是ASP或PHP还可以做301转向:
ASP:
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", " http://www.domain.com"
>
PHP:
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.domain.com” );
?>
另外,DOThtaccess文件只是一个普通文字文件,你用Notepad建这个文件,放上指令,存在你帐号的根目录下就行了。不需要修改Apache。


猜你喜欢
antd form表单使用setFildesValue 赋值失效的解决
Spring boot 和Vue开发中CORS跨域问题解决
python中global用法实例分析
MASA Blazor入门详细教程

mssql server .ldf和.mdf的文件附加数据库的sql语句
Python OpenCV学习之图像形态学

RHEL下架设MYSQL集群
25个出色的使用叶子的logo设计

Django中使用locals()函数的技巧
SpringBoot集成JPA持久层框架,简化数据库操作
python 生成xml文件,以及美化的实例代码
解决echarts中饼图标签重叠的问题

Python使用5行代码批量做小姐姐的素描图

python3 assert 断言的使用详解 (区别于python2)
Vue Echarts实现实时大屏动态数据显示
Python使用tkinter库实现文本显示用户输入功能示例

任意定制文本对齐方式:CSS Text Wrapper

Python接口传输url与flask数据详解
