分享

php实现301永久重定向和302临时重定向

 每天学一点7 2013-12-10

对于许多站点而言,以域名为例:用户在浏览器中输入网址http://www./或者http://www./index.php,实际上访问的都是本站的首页;用户在浏览器中输入网址http://www./或者http:///,访问的依然都是本站的首页。

此外,在某些情况下,我们可能需要将站点中的某个文件移动到一个新的位置或更改该文件的名称。此时,用户可能仍然会输入以前收藏的网址来访问该网页文件,因此,我们需要尽量保证以前的网址和新的网址都能够访问到最新的网页内容。

但是,对于搜索引擎而言,两个路径不同的网址,又没有其他特别的说明,则会被搜索引擎认为这是两个独立的页面,从而进行分别收录。不过,由于两个页面的内容雷同,搜索引擎可能会对上述网址进行降权处理,从而影响SEO的效果。

为了避免给网站的SEO造成不良影响,也为了给用户带来良好的访问体验,我们应该采用一些特别说明来告诉搜索引擎——“它们实际上是同一个页面”。当然,不仅仅是为了SEO,对于一个优秀的站点而言,每一个网页也都应该对应一个唯一的网址。

在这里,我们就需要使用“特别说明”来告诉浏览器或者搜索引擎,“旧的网址和新的网址实际上是同一个网页,建议浏览器或搜索引擎使用新的网址来访问该网页”,这里的“特别说明”就是HTTP重定向。HTTP重定向,简言之,就是当用户浏览器或搜索引擎访问某个旧的网址时,服务器告诉浏览器或搜索引擎,“该网页已经搬家了,新家的地址是……,请使用新地址来访问该网页”。例如,当用户访问网址http://www./index.php时,服务器将告诉浏览器,这个页面应该重定向到http://www./。此时,浏览器或者搜索引擎就会自动跳转到新的网址从而访问网页内容。

HTTP重定向又分为永久重定向(HTTP状态码为301)和临时重定向(HTTP状态码为302)。永久重定向就表示该网址已经搬迁到一个永久居住的“新家”,临时重定向就表示该网址搬迁到了一个临时居住的“公寓”。下面,我们就使用php来分别实现302临时重定向和301永久重定向。

  1. <?php
  2. //302临时重定向
  3. $new_url = 'http://www./';
  4. header("Location:$new_url");
  5. ?>
  1. <?php
  2. //301永久重定向

  3. $http_protocol = $_SERVER['SERVER_PROTOCOL'];   //http协议版本

  4. //如果是其他协议,则默认为HTTP/1.0
  5. if ( 'HTTP/1.1' != $http_protocol && 'HTTP/1.0' != $http_protocol )
  6.     $http_protocol = 'HTTP/1.0';

  7. //响应301状态码
  8. header("$http_protocol 301 Moved Permanently");

  9. //指定重定向的URL
  10. $new_url = 'http://www./';
  11. header("Location:$new_url");
  12. ?>
备注:考虑到SEO等因素,一般情况下,建议使用301永久重定向。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多