首页 > seo基础知识 > 详解302状态码
2011六月7

详解302状态码

       302状态码的意思有点模棱两可。它表明源页面被“暂时地”被移动,但老的URL地址根本没有被废除。除非被报头信息Cache-Control或Expires明确指定,否则客户不会缓存结果。因为302也用于一些付费广告链接,情况甚至更加混乱,这里不讨论了。
       

       302状态码最大的问题是,对搜索引擎而言,它的意思依赖于它的上下文。实际应用中,应该把它分成两种:内部临时的重定向,即从域A的一个页面到域A的另一个页面;外部临时的重定向:从域A的一个页面到域B的一个页面。

        浏览器在解释302重定向的时候总是遵循其定义–无论是内部重定向还是外部重定向。然而,目前大部分搜索引擎(包括Google和Yahoo!)只把它作为内部的302重定向来使用。这样,对一个内部的302重定向,搜索引擎不会缓存重定向的结果,并且将域A继续列于搜索结果中。这与定义是一致的。外部302重定向则复杂一些。Google的Matt Cutts宣称,超过99%的时间里,Google将列出目标结果的结果,即域B而不是域A。这与标准相背离的,而Google这么做是为了减轻”302劫持”的攻击。

“       302劫持(hijacking)”是指,利用域A上的一个页面引用有高质量更新内容的域B。这样,基于从域B”偷来”的更新内容,这个页面会有比较好的排名。并且利用伪装(cloaking)方式,将用户重定向到另一个页面。这种行为如此盛行,以至于Google和Yahoo!都不得不在算法上作出调整。正如Matt Cutts所说,”在超过99%的时间里,Google转向一组启发式方法来返回目标页面。为什么不是100%呢?几乎所有的搜索
引擎都保留了一点例外的权利。当我们认为源页面对用户更好时,才会这么做;当然哪种情况很罕见。”

在地址http://www.mattcutts.com/blog/seo-advice-discussing-302-redirects/ 有Matt Cutts讨论外部302的文章。在这种情况下,RFC的定义不是规则的—它变成例外了!大部分情况下,外部302被当做301处理,除非它不会影响链接价值的传递。

在实际应用中,比如动态网站中,无论考虑使用302状态码是不是真正必须的。如果想把某个URL地址临时存放不同的内容,最好是采用一种显而易见的方法来改变需要的内容。在实现上可以使用一个include(),或者远程获取并显示代替的内容,从一开始就防止产生对302状态码的需要,为此,需要使用PHP的cURL功能–Client URL Library.假设老的页面为old_page.php,而包含了所需要内容的页面称为new_page.php。只要在前者使用如下代码就可以包含后者的内容:
include(‘new_page.php’);
为了使用cURL从不同的服务器获取内容,可以这样做:

$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, ‘http://www.example.com/new_page.php’)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
echo curl_exec($ch)

另外,302状态码是暂时性转移(Temporarily Moved)是HTTP状态码,也是SEO最容易被判作弊的方式,大家慎用!

分享到:

文章作者:武汉SEO
本文地址:http://www.zhengbiao.net/302-status-code/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

2 Responses to “详解302状态码”

  1. #1 莆田SEO 回复 | 引用 Post:2011-12-03 06:33

    哥们,logo做一个好吗?

    • #2 武汉SEO 回复 | 引用 Post:2011-12-03 15:07

      哈哈,好吧!谢谢提醒。

发表评论