對於許多站點而言,以域名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");