用PHP实现HTTP 301永久重定向

2008年6月8日 | 分类: 编程开发 | 标签: , ,

  301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:301 代表永久性转移(Permanently Moved),302 代表暂时性转移(Temporarily Moved)。

  301 重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址,如果我们把一个地址采用301跳转方式跳转的话,搜索引擎会把老地址的PageRank等信息带到新地址,同时在搜索引擎索引库中彻底废弃掉原先的老地址。

  在PHP中,一般实现页面跳转的语句如下:

<?php
  header('Location: http://www.wuwx.net/');
?>

  当我们使用工具查看这个HTTP头,发现他返回的是一个HTTP 302临时重定向。而不是我们所期望的HTTP 301永久重定向,注意看下图中的第一行:

  用PHP实现HTTP 301永久重定向

  应该如何实现HTTP 301永久重定向呢?其实也很简单,只需增加一行代码:

<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.wuwx.net/');
?>

  当我们再次查看这个页面的HTTP头的时候,他返回的就是我们所期望的HTTP 301永久重定向了。

  用PHP实现HTTP 301永久重定向

  1. 2008年6月12日11:34

    博主好厉害!

  2. robert
    2010年3月14日16:43

    请教一个问题:我想利用301重定向将网站的某个目录(比如www.domain.com/dir),跳转到另外一个地址(www.redirect.com)。但是利用你提供的php代码实现跳转后,地址栏中的地址也会由www.domain.com/dir变为www.redirect.com,有没有一种方式保持地址栏中的地址不变?盼望得到你的回复,谢谢!

  3. 2010年3月15日15:51

    @robert

    你这样的需求就不是 301 了, 用 iframe 来实现就可以了.

  4. 2010年3月18日09:41

    你好 我是一名小菜 我原来网站的的域名是www.globalaudio.cn ,我网站现在的域名是news.globalaudio.cn 我的网站是windows服务器 用的是IIS ASP网站 请问如何做301重定向? 谢谢!

  5. 2010年8月20日13:10

    感谢。我去试验一下