301转向和网址规范化
Apr 12th, 2006
写了网址规范化后,尚奇公司的柳先生建议再深入讨论一下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。
添加到雅虎收藏
404错误与网站收录有多大影响?现在我网站有一些404
有一些页面删除返回404码没多大影响。
谢谢,我网站出现了大量的Supplemental Result 如果我site:www.mysite.com 收录很少320个,如果site:mysite.com收录1300个,但好多页是Supplemental Result 收录的页面的url是 mysite.com/***.htm前面没有www.你说我怎么在DOThtaccess文件做那么多面页的301转向呢?
一般我网站都是呀是这样写的 href=”../resource/resource.htm呀或href=”resource/resource.htm>,没有道理没有url规范化,真的要这样写吗?href=”http://www.mysite.com/resource/resource.htm,?不明白?
照你描述的情况应该是有URL规范化问题。只要在DOThtaccess文件放下面的mod_rewrite指令就行了,不用一个一个处理,对整个域名有效。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/1 [L,R=301]
你说的URL用绝对路径或相对路径在大部分情况下都没问题,但相对路径../resource/resource.htm有可能导致URL规范化问题。如果有反向链接连到http://domain.com,而你用的是相对路径而且没有301转向,那所有网页就都有两个URL版本了。
DOThtaccess和.Thtaccess有什么不同,我的服务器是linux的,我建了两个,但.Thtaccess看不到。还有我的301转向什么时候才能看到有效呀,也就是说所有的页面已经做好了301转向??有什么方法,是不是也要site:mysite.com
如果把所有的../resource/resource.htm链接变成http://www.mysite.com/resource/resource.htm会不会影响收录??
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/1 [L,R=301]
会不会对http://www.domain.com/index.htm有效呀,是不是另加上一行:
redirect 301 /http://www.domain.com/index.htm http://www.domain.com
.Thtaccess文件?没听说过。可能是哪里拼写错了吧。应该是DOThtaccess,把DOT换成点“.”。WordPress好像有bug,直接写真的DOThtaccess总出错。
301做好你自己就可以检查啦,比如去
http://domainname.com
看是否会自动转到http://www.domainname.com
至于什么时候会消除URL规范化问题,我的经验是起码半年以上。
相对路径改成绝对路径不会影响收录。
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/1 [L,R=301]
这两行指令是把没有www的URL统一成有www的URL。要http://www.domain.com/index.htm转到http://www.domain.com/要加一行:
redirect 301 /index.htm http://www.domain.com/
当然改完检查一下。
你有Email吗?我想把我的DOThtaccess文件给你看一下,就是转不了。http://mysite.com 转不过http://www.mysite.com
DOThtaccess在我写的网站地址上。帮我看一下。
我给你发了电邮。
常看你的博文,有个问题请教:
http://www.a.com 用301定向到www.b.com
a的pr是5 ,会传递到b吗,这个过程需要多长时间,几天?几月?是否有具体的例子?
对这个问题一直很费解?
用301转向网页a的pr会传递到b。
一般需要几个月时间。现在工具条PR值也几个月才更新一次,所以跟几天也没什么差别。
感谢前面问题的解答,310方面还有些困惑:
a用301转到了b,PR的转移需要一个时间的过程,可是排名情况会如何呢,是否也会象PR一样会完全地传递过来?我之前a的排名是非常好的且很稳定,但在专到b这段时间,多个核心词从首页降到了4页,我不知道是否是受换域名引起的?方便的话邮件里聊一下。
做301转向后PR和排名一年内不稳定都是正常的。而且301只是传递PR与排名没有直接关系。b页的排名和b站内容,结构,优化情况等都有关,和a页的排名没必然关系。
可以email到我gmail地址。
您的BLOG引用现在是不是不能使用了?
可以使用,但要后台批准才会出现。
你发的trackback我批准后全是乱码,我删掉了。建议你把你的blog改成utf-8。
搜索引擎bot不接受cookie,建议你拿掉session ID。
Zal,您好,
想请教一下,
如果两个域名共用一个空间,对SEO有没有影响,有没有办法解决这个问题呢?
我的gmailtalk:abaccn@gmail.com
leon: 请参考这个帖子
尊敬的zac老师,
你好。
我的网站是个jsp的网站,现有三个绑定的域名,按时间顺序分别是www.learndiary.com(pr=4),www.123go.org.cn(pr=4),当前由于网站定位调整,准备主要启用域名java.learndiary.com(pr=0)(pr值用www.123cha.com上查的)。
根据你写的文章和jsp的重定向技术,我在程序中实现了网站下面各页面内容的301转向,请求原来域名下的内容返回301码,请求新域名下的内容返回200码。
但是,我的首页通过程序无法实现301重定向。访问http://www.learndiary.com和http://www.123go.org.cn返回301,重定向到http://java.learndiary.com ,访问http://java.learndiary.com返回302,重定向到http://java.learndiary.com/indexAction.do ,
访问http://java.learndiary.com/indexAction.do返回200码。
因为我的网站是租的虚拟主机,主机只能够自动把http://java.learndiary.com定向到index.jsp, index.html, index.htm三种主页上,而我的网站的主页是index.do (使用struts做的),于是我在index.jsp做了一些重定向代码。但是始终不能达到输入我现在主用的域名http://java.learndiary.com就返回200码的效果。
请问我这样情况的主页对搜索引擎友好吗?如果不友好我应该作些什么变动?
谢谢。
littlebat
http://java.learndiary.com JAVA学习日记,分享目标,分享快乐。
littlebat: 抱歉,具体怎么实现301在各种服务器上方法不一样。我对JSP等一无所知,也帮不上忙了。
谢谢您的回答,我主要是看了您的文章
回答几个SEO相关问题:http://www.chinamyhosting.com/seoblog/2006/08/13/some-seo-questions/中的这段:“如果这些域名都返回的是200,那么恐怕就有复制内容问题。应该把其中一个域名做主域名,服务器返回200,其他的所有域名都要做301转向,检查服务器状态码时,应该返回301,这样才能避免复制内容网页。”
我的重点是想问:我输入首域名http://java.learndiary.com的返回状态码是302,不返回200码;输入其它两个辅助域名的返回状态码是301。
请问这样的情况对搜索引擎友好吗?对网站的搜索排名等有多大的负面影响呢?
zac老师,
您好。我在jsp文件里用meta的重定向标记使输入主域名正确的返回了200码,输入辅助域名返回301码并重定向到主域名。
但是,我听说使用meta的跳转会被怀疑作弊,甚至会被搜索引擎封掉,就没敢用。是真的吗?
zac老师,我把本站面临的首页重定向的具体情况记在了我的日记中:JSP/servlet中和response.sendRedirect(”")重定向 http://java.learndiary.com/disDiaryContentAction.do?goalID=2582&naviStr=a10
里面涉及一些jsp重定向的具体技术,所以就没有贴在您这里,您有时间的话可以去看看。谢谢。
不知道你怎么用meta跳转实现301,如果真的是返回301,bot在看到meta跳转之前就转向了。不是很明白。
不管用什么机制,只要你检测URL返回的确实是301就可以了。
meta的跳转和302一般不推荐。
[quote]
我在jsp文件里用meta的重定向标记使输入主域名正确的返回了200码,输入辅助域名返回301码并重定向到主域名。
[/quote]
zac: 我的话可能没说准确,对输入主域名,用meta重定向可以返回200码;用jsp技术对输入主域名只能返回302码;
用jsp中的301重定向技术把辅助域名可以重定向到主域名。
实际上用url header checker查一下我的3个域名就知道啦:)
分别是:www.learndiary.com(辅助域名)
http://www.123go.org.cn(辅助域名)
java.learndiary.com(主域名)
我暂时准备做一个引导性的主页,用户输入域名后,进入这个主页,上面介绍一下本站的基本内容,如果用户决定进入的话,可以按一个“进入”链接进入“真正的”(也是现在用的)主页。我试了一下,这个引导性的主页可以用html文件做,返回的是200 OK。
感谢你的回答。
请问下你这个站的301是如何做的?
是在php中写的还是在.htaccess中写的?
在.htaccess中是如何写的?
请问:
我有四个域名.都是做跳转.指到一个.
但没有做到所说的301转向.现在有必要在其它页面中放入;
这样写对吗?(我是新手.请Zac不要介意)
zac老师,我的网站www.manaren.com的URL地址全部是动态的结构。我现在想将动态的地址转换为静态的.HTM的URL地址。优于百度已经收录了大量的页面。请问在地址静态化之后是否需要对于原有动态地址进行301重定向。
.htaccess的301好像不太对,好像是
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/1 [R=301,L]
zac老师 ,你好,我的网站http://www.hld122.com不知道为什么反向连接特别的少,我看了你里面不少关于反向连接的文章,照着做也不行,我们这个网站针对性还是很专的,在同类较好的网站中都有友情连接.可是反向连接就是不高,而且网站的世界排名一天比一天底,请您帮我看一下 ,是不是我的什么操作被误会成作弊了
谢谢了
如果是虚拟主机怎么操作。如果页面是生成静态的,怎么做 301
zac老师,
请问您个问题,我现在有三个域名做一个站,www.mix56.com这个米是以前注册的,后来网站改版了,又去注册了2个.www.qqrain.com和CN的,申请后就将www.mix56.com通过域名管理面版的URL转向到了qqrain.com,我是想在网站程序做好一些修改后再向BAIDU提交新域名的,但是百度还是一直再更新网站的数据,并且都是MIX56的网址,我在主机没有绑定MIX56这个米.所以我想请教您,怎么样让百度停止收录数据.并且mix56这个米继续指向同一个站..谢谢
[...] 301转向和网址规范化 [...]
[...] 301 重定向表示一个网页已经永久性地转移到了另一个网页去,这是Google官方推荐的做法,可以很好地解决不同网址重复内容的问题,此功能也需要. htaccess支持。这里的不同网址重复内容指的是这样的网址:http://seo9.org/和http://www.seo9.org,它们虽然 都指向同样的网页,却在技术上属于不同的URL。网站中含有大量重复网页会被搜索降权处理,除非你的网页很重要,搜索才会卖力地对你的反向链接进行大量计 算以求得哪个地址是主要的。关于这个问题的介绍我主要参考了Zac的这篇文章:301转向和网址的规范化 。 [...]
zac老师,您好!我们公司的站最近在改版,把原来http://www.cycmedu.com/kzpx/ggyys/ggyys.aspx这样的链接换成了http://www.cycmedu.com/ggyys/ggyys.aspx这样的。请问能做301转向么?该怎么做呢?
zac老师您好!Windows主机做301转向是不是要在iis里新建一个网站然后把要做转向的网址做个”重定向到URL”转向到新地址? 谢谢解答!
zac:我是用的国外空间,支持.htaccess的MOD_REWRITE,网站改版前用ASP+ACCESS,现在换成php+mysql其中一页面中的关键字在GOOGLE上排名不错,并带来不错流量。
现在我想把此页面http://www.kingma-vehicle.com/more.asp?newsid=341301重定向到http://www.kingma-vehicle.com,我改怎么写.htaccess规则??
[...] 301是干什么的 301是怎么做的 当然是看ZAC的经典301文章这里就不在阐述了。 [...]
如何在window下 把 domain.com 301到 http://www.domain.com没说清楚啊 最最常用的ZAC能不能讲一下
具体应该怎么弄啊,在哪里加呢?
zac,您好!
我的网站即需要url重定向,又想把动态网页url转化为静态的,这样就会有两个重写规则和指令:
(1)
RewriteEngine On
RewriteRule (.*)-(.*).htm $1.php?type=$2
(2)
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^mydmain.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/1 [L,R=301]
两个独立都能执行,但怎么让他们同时起作用呢?
如果把/a/文件夹下的所有文件301到index.php如何写呀
我的站要换域名了,是HTML的,现在建一个,index.asp主页,把下面这段代码放进去.
那我之前那个index.html是否要删掉呢?如果要删掉的话,我的新域名就不知链到哪了,怎么办呢?我的站是虚拟主机的,新的也是连到同一个空间
zac老师,我的aaa.com被百度封了,现在我用301转到bbb.com的话,bbb.com会不会也被百度封杀呢?
zac老师:您好
我想把我们的问题给您一份电邮可以么?
zac老师:您好
我现在的问题是 我有三个域名:
http://www.aaa.com http://www.bbb.com http://www.ccc.com, 其中aaa.com bbb.com 同时绑定在一个空间上, ccc.com做了url挑转到aaa.com,
我现在想起用ccc.com作为主域名
剩下的两个应该如何做301呢?
非常感谢
贴下我的网站你好实地的看下:www.tooleegroup.com.cn
谢谢
301转向,是不是必须在每个文件都设置跳转???
谢谢ZAC!帮助很大
我网站由之前的完全静态,转为现在的动态PHP论坛,需要做301转向吗?怎么做?敬请赐教。谢谢!
老师您好。
这样的,中国绿软基地的前米caicai.org被GG K过了。
现在改版,同时换新米lvdown.com.
都是ASP生成静态html,想请教一下,应该用什么方式跳转?
不胜感激!
学习一下301
最近从点石上看到这个文章了。
zac比较有远见的。
[...] 百度SEO之前在一篇百度不支持读取301转向?的文章里面提到了301永久重定向,由于并不是有太多的朋友了解这个东西,所以专门写了这篇日志给大家大概说一下。本文的部分内容参考了搜索引擎优化SEO每天一贴的部分内容。 [...]
[...] 附:前日将本站域名做了细微调整,将blog.yuewu.cn改用域名为yuewu.cn,利用301转向实现无缝跳转,方法来自301转向和网址规范化,记录在此存为资料。 [...]
我的这个站http://www.ddbearing.com.也想做301转向,不过还得学习
准备启用新域名,是否需要向搜捕引擎提交。
我的域名是www.ceke8.cn
我这两个站:http://www.dgmjg.cn和http://www.gdmjg.cn两个站如何一起做301转向
[...] 百度SEO之前在一篇百度不支持读取301转向?的文章里面提到了301永久重定向,由于并不是有太多的朋友了解这个东西,所以专门写了这篇日志给大家大概说一下。本文的部分内容参考了搜索引擎优化SEO每天一贴的部分内容。 [...]
[...] 301转向和网址规范化 [...]
“如果你用的是 Windows主机,应该在控制面板做301转向设定。”
如何在控制面板做 301转向设定,我GOOGLE了 没找到结果,能告诉我么?
还有你那段PHP 代码
PHP:
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.domain.com” );
?>
放在哪里呀?
我想将www.maixiangjiao.com转向到www.maixiangjiao.com.cn怎么办呀?
我的站不知道为什么被百度K了,想换个域名,网站的结构已经做了修改了~~
如果您有时间请回复一下好吗,邮件回复就最感谢了
恩,学习了。
恩.前几天做了301直接pr排名一起转过来了
问下:
我的一个站空间绑了2域名,由于我们的副域名里面有关键词,所以在yahoo里面排得特好.现在2个域名都有2的PR,并且副域名的ALEXA 比主域名还高,到100W以下了!
问下,这种情况下,我需要做301吗?
小声问下,做了的话可能有什么后果或者结果啊?
To: Zac
1.五楼评论,你漏写了一个美元字符—$ [第五行代码]
2.按照你的代码
{
Options +FollowSymLinks
# 将 RewriteEngine 模式打开
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123.cn [NC]
RewriteRule ^(.*)$ http://www.123.cn/1 [L,R=301]
}
还是会产生“2”种版本啊!
a.http://www.123.cn
b. http://www.123.cn/index.html
ok s:
1)你留的代码和我写的好像并不一样。
2)我写的只是举例,不保证适合所有服务器设置。
3)具体网站代码怎么写,请咨询自己的程序员,以程序员的为准。
我按你的方法做了,但不行,怎么办?
谁知道:为什么点石不让我注册啊!我只不过,迟到了些日子!
方便联系:留Q:229647425
谢谢!
你所说的这个跟郝聪说的好像有点出入呃!
[...] 关于详细的301转向可以看点石互动的“301转向代码合集”,也可以看Zac的“301转向和网址规范化”这篇文章。 [...]
有关百度的收录,要如何做还能收录,首页的301重定向的方法是如何,