天天看點

php 302臨時重定向,php實作301永久重定向和302臨時重定向

對于許多站點而言,以域名365mini.com為例:使用者在浏覽器中輸入網址http://www.365mini.com/或者http://www.365mini.com/index.php,實際上通路的都是本站的首頁;使用者在浏覽器中輸入網址http://www.365mini.com/或者http://365mini.com/,通路的依然都是本站的首頁。

此外,在某些情況下,我們可能需要将站點中的某個檔案移動到一個新的位置或更改該檔案的名稱。此時,使用者可能仍然會輸入以前收藏的網址來通路該網頁檔案,是以,我們需要盡量保證以前的網址和新的網址都能夠通路到最新的網頁内容。

但是,對于搜尋引擎而言,兩個路徑不同的網址,又沒有其他特别的說明,則會被搜尋引擎認為這是兩個獨立的頁面,進而進行分别收錄。不過,由于兩個頁面的内容雷同,搜尋引擎可能會對上述網址進行降級處理,進而影響SEO的效果。

為了避免給網站的SEO造成不良影響,也為了給使用者帶來良好的通路體驗,我們應該采用一些特别說明來告訴搜尋引擎——“它們實際上是同一個頁面”。當然,不僅僅是為了SEO,對于一個優秀的站點而言,每一個網頁也都應該對應一個唯一的網址。

在這裡,我們就需要使用“特别說明”來告訴浏覽器或者搜尋引擎,“舊的網址和新的網址實際上是同一個網頁,建議浏覽器或搜尋引擎使用新的網址來通路該網頁”,這裡的“特别說明”就是HTTP重定向。HTTP重定向,簡言之,就是當使用者浏覽器或搜尋引擎通路某個舊的網址時,伺服器告訴浏覽器或搜尋引擎,“該網頁已經搬家了,新家的位址是……,請使用新位址來通路該網頁”。例如,當使用者通路網址http://www.365mini.com/index.php時,伺服器将告訴浏覽器,這個頁面應該重定向到http://www.365mini.com/。此時,浏覽器或者搜尋引擎就會自動跳轉到新的網址進而通路網頁内容。

HTTP重定向又分為永久重定向(HTTP狀态碼為301)和臨時重定向(HTTP狀态碼為302)。永久重定向就表示該網址已經搬遷到一個永久居住的“新家”,臨時重定向就表示該網址搬遷到了一個臨時居住的“較高價的電梯大廈”。下面,我們就使用php來分别實作302臨時重定向和301永久重定向。<?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");

?>

備注:考慮到SEO等因素,一般情況下,建議使用301永久重定向。