302、301状态代码在SEO中,我们会经常碰需要将一些页面转移到URL,或者网站改版的时候,需要301或者302来帮忙处理这个过度阶段。301、302跳转代码,在处理上,我们需要借助技术的帮助。因为这个处理,需要在服务器上进行设置。而且,我们在准备这么做的时候,我们必须要保证我们的处理方式是对的,如果出错的话,导致的后果,可能会是很严重的。 HTTP状态代码中,用于重定向的是301和302.这两个代码指明了为满足某个HTTP请求就必须被发出另一个请求---内容定位于其他地方。当一个网页用这两个代码的任意一个作为响应时,它返回的不是任何HTML内容,而是包含了一个附加的HTTP报头信息:Location,它指示另一个URL地址,在那里可以找到响应的内容。 302状态代码有一点模棱两可的意思,302的意思是暂时地把内容转移到一个新的URL,但是老的URL还没有废除。除非被报头信息Cache-Control或Expires明确指定,否则客户不会缓存结果。因为302也用于一些付费广告的页面,主要用于跳转,但是在这里就不就这种方式做深入性探讨。 302状态的最大问题是在于,对搜索引擎而言,302状态代码的实际应用中,应该把302分为两种。一种是内部页面之间的跳转,另外一种是站内页面302到其他站页面。 浏览器在解释302重定向的时候总是遵循其定义---无论对于内部和外部都如此。然而,目前大部分的搜索引擎(包括Google和Yahoo!)只把它作为内部的302重定向来使用。这样,对一个内部的302重定向,搜索引擎不好会缓存重定向的结果,并且将域名A继续显示在SERP中。这与定义是一致的。 外部的302重定向则复杂一些。Google的Matt Cutts说,大部分的情况是,Google将列出目标结果的结果,即域名B而不是域名A。这是与标准背离的,而Google这么的目的在于减少“302劫持”的攻击。 302劫持是指,利用域名A上的一个页面引用高质量更新内容的域名B。这样,基于从域名B“偷来”的更新内容,这个页面会有比较好的搜索引擎排名。并且利用伪装(cloaking)方式,将用户重定向到另一个页面。这种行为如此盛行,以至于Google和Yahoo!都不得不在政策上做出调整。正如Matt Cutts所说,“大部分的情况是,Google转向一组启发式方法来返回目标页面。为什么不是100%呢?几乎所有的搜索引擎都保留了一点例外的权力。当我们认为源页面对用户更好时,才会这么做;当然那种情况很罕见。” 在实际应用中,比如动态网站中,无论如何都应该评估302状态代码是否真正必需。如果想把某个URL地址临时存放不同的内容,最好是采用一种显而易见的方法来改变内容。在实现上可以使用一个include(),或者远程获取并显示替代内容,从一开始就防止对302状态代码的需要。 (责任编辑:laiquliu) |