301跳转就是告诉访问者页面己经永远到了新的页面了,在php中使用301跳转我们利用header()函数发送301状态代码告诉浏览器,然后再实现页面跳转即可。
PHP纯代码跳转,代码如下:
- <?php
- header("Location:http://www.phpfensi.com/");
- ?>
但是这种返回的状态码是302,如果要实现301跳转的话,需要在之前设置下状态码,代码如下:
- <?php
- header( "HTTP/1.1 301 Moved Permanently" ) ;
- header("Location:http://www.phpfensi.com/");
- ?>
更简单的PHP跳转301代码,代码如下:
- <?php
- $urlto='http://www.phpfensi.com/';
- header('Location: '.$urlto, TRUE, 301);
- ?>
可能出现的问题
Warning: Cannot modify header information - headers already sent by把文件编码改成 UTF-8无BOM格式,可解决该问题,如果还是有问题,就检查下该代码前是否定义了字符串变量,删除这个变量再试试。
附:30*返回状态码的区别
301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:
1.301 redirect: 301 代表永久性转移(Permanently Moved)
2.302 redirect: 302 代表暂时性转移(Temporarily Moved )
这两种转移在使用的时候有啥好处或者问题?
301 重定向是网页更改地址后对seo搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 重定向是临时性转移。 |