重定向和永久重定向

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

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

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

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

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

HTTP重定向又分为永久重定向(HTTP状态码为301)和临时重定向(HTTP状态码为302)url

永久重定向就表示该网址已经搬迁到一个永久居住的“新家”,临时重定向就表示该网址搬迁到了一个临时居住的“公寓code

<?php
//302临时重定向
$new_url = 'http://www.365mini.com/';
header("Location:$new_url"); 
?>
<?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.365mini.com/';
header("Location:$new_url");