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

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

在PHP中,一般实现页面跳转的语句如下:
php header(’Location: http://www.text.cn/’);
当我们使用工具查看这个HTTP头,发现他返回的是一个HTTP 302临时重定向。而不是我们所期望的HTTP 301永久重定向,注意看下图中的第一行:

应该如何实现HTTP 301永久重定向呢?其实也很简单,只需增加一行代码:
php header(’HTTP/1.1 301 Moved Permanently’);
header(’Location: http://www.testone.cn/’);
当我们再次查看这个页面的HTTP头的时候,他返回的就是我们所期望的HTTP 301永久重定向了。

例子,该例子是实现

 http://www.dev.test.com.tw/static/test.html?aid=2134 的页面永久性重定向为  http://www.dev.test.com.tw/static/test.html这样的页面

 

 
  
  1. function permanent301($page){ 
  2.     $uri=$_SERVER['REQUEST_URI'];  
  3.     if(stristr($uri,"aid")){ //判断是否包含aid参数 
  4.         @header( "HTTP/1.1 301 Moved Permanently" ) ; 
  5.         @header( "Location: http://www.dev.test.com.tw/static/".$page.".html" );  
  6.     }