网站重定向中301与302的比较

网站重定向相信大多数站长都有用到过,最常用到的是301和302这两个http状态码。那么301与302有哪些区别呢

301重定向主要是用于在域名的更改或者不带www的域名定向到带www的域名上,而302重定向可能我们的了解就比较少了,302重定向又称之为302代表暂时性转移,英文叫法为302 redirect,可以理解为暂时或者临时重定向。表示一个页面只是临时的搬到另一个页面上,从一些经验老道的SEO高手处得知,302重定向还有内部和外部之分,同一个域名中两个不同的页面之间的的临时重定向,这个成为为内部的临时重定向。另一种则是在不同的域名之间做临时的重定向,这种称为外部临时重定向。然而,基本上所有的搜索引擎都只把它定义为内部的302重定向。对此,如果是内部的302重定向搜索引擎并不会删除搜索结果中旧的页面。

301重定向被认为是目前域名更改后以最友好的方式展现给搜索引擎,也是业内用得最多的。在部落的网站中,之前有写过很多关于301的文章,比如301重定向是否成功的验证方法wordpress博客301重定向失效的解决办法这两篇文章,其中包括实现的具体方法和其中出现的一些问题的处理方式,您都可以参考一下,具体就不再多讲。这里补充说明一下的是301重定向后到百度的反应时间需要多久,也是很多站长都关注的问题,而百度Lee给出的说法是:“网页的301跳转是受Spider网页更新周期制约的,这个更新周期目前来说可能比较长,我们也致力改进它”。很明显,这是一个很模糊的说法。

目前有部分站长将302 重定向应用到黑帽技术上,利用302的外部重定向来进行“302劫持”,即将别人的内容劫持到自的页面上,来获得更好的权重,这些一般是在交换您的友情链接上需要注意的事情。

如果您是进行新旧域名的替换,那么302重定向与301重定向的效果是一样的,并且都可以将旧域名的权重传递到新域名上,然而302却是以另外的方式——PR劫持来实现的。实现过程如下:

如果A做302临时重定向到B,A随时有可能改变主意显示本身或者做其他改变,那么当Googlebot(当然也包括Baiduspider)等搜身引擎蜘蛛抓取A的时候,实际上抓取的是目标地址B的内容,这样就导致A和B不同的地址有完全相同的内容,并且都被编入了索引,被认为是“利用重复的内容来干扰Google搜索结果的网站排名”,网站受到惩罚也是在情理之中。

小结

302重定向被搜索引擎认为是一种作弊方式,站内过多的302临时重定向将有可能导致搜索引擎的惩罚,致使站点被降权。网上现在关于302重定向所引起的各类网站降权问题非常多,如下图:

redirect302

鉴于部分问题无法得到完美的论证,所以部落对这些降权现象持观望并谨慎怀疑的态度,但有一点是可以肯定的,那就是302重定向,能不用时,就不要使用,毕竟301已经证实为所有的搜身引擎所接受。


实现重定向的原理很简单,就是Web服务器返回个HTTP header给浏访问者,PHP发送HTTP header这个功能是由header()函数来实现的。301, 302, 404 这些状态码是在HTTP协议中约定好的,所以不用打破沙锅问“为什么是301而不是3001”。扯多了,回到正题。

  PHP 301重定向:

header('HTTP/1.1 301 Moved Permanently'); 
Header( "Location: http://www.hzhuti.com/" ); 
exit();

或者:

    <?php
    //301永久重定向
    $http_protocol = $_SERVER['SERVER_PROTOCOL'];   //http协议版本
    //如果是其他协议,则默认为HTTP/1.0
    if ( 'HTTP/1.1' != $http_protocol && 'HTTP/1.0' != $http_protocol )
        $http_protocol = 'HTTP/1.0';
    //响应301状态码
    header("$http_protocol 301 Moved Permanently");
    //指定重定向的URL
    $new_url = 'http://www.111cn.net/';
    header("Location:$new_url");
    ?>

PHP 302重定向:

header("Location: http://www.hzhuti.com/"); 
exit();



顺到把PHP 404错误也附带上:


header("HTTP/1.1 404 Not Found"); 
exit();

 这里关于php 301与302重定向就讲到了这里了,下面附一下apache做法

  例:

  APACHE

Redirect 301 /old/old.htm http://www.111cn.net/new.htm
Redirect permanent /one http://111cn.net/two
RedirectMatch 301 (.*).gif$ http://www.111cn.net/images/$1.jpg

  2.使用mod_rewrite重写URL方式

  APACHE


Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^111cn.net
RewriteRule ^(.*)$ http://www.111cn.net/$1 [R=permanent,L]
 关于apache htaccess这里就不介绍了与mod_rewrite重写URL方式几乎是完全一样的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值