天天看點

301永久重定向是什麼東西

所謂301永久重定向(或叫301轉向,301跳轉),是指當使用者或搜尋引擎向網站伺服器發出浏覽請求時,伺服器傳回的HTTP資料流中頭資訊(header)中的狀态碼的一種,表示本網頁永久性轉移到另一個位址。

301永久重定向有何作用?在哪些情況下适用?

從301永久重定向的定義可以看出,它是一種狀态碼,會向搜尋引擎或浏覽器發出資訊:本網頁的位址已經永久改變了。并會把新的位址傳達過去。而相應的就是:我們輸入網址A通路,顯示出來的是轉向後的網址B,轉向過程極短以至無法察覺。是以,301永久重定向對于訪客來說,作用就是将他要通路的而實際上已不存在的網址轉到另一個網址,避免出現“此網頁無法顯示”之類的錯誤;對于搜尋引擎優化|SEO來說,給搜尋引擎一個友好的資訊,告訴它此頁面已永久重定向,避免搜尋引擎找不到頁面。這對于網站的SEO是很重要的,因為301永久重定向對SEO無任何不好的影響!而且網頁A的關鍵詞排名和PR級别都會傳達給網頁B!

一、當出于需要删除網站中的某些目錄時,可以通過301永久重定向将此目錄重定向到網站首頁。

二、網站更換域名時,通過301永久重定向将舊域名重定向至新域名,挽回流量損失和SEO。

三、想要多個域名同時指向同一網站時,通過301永久重定向可以實作。

一般的虛拟主機背景提供将test.cn和www.test.cn等多個域名綁定到同一網站的功能,但這樣對收錄可能有影響,而用301永久重定向就沒有這樣的擔憂。

四、實作網址規範化。

有以下4個網址:

http://test.cn

http://www.test.cn

http://test.cn/index.html

http://www.test.cn/index.html

查詢上面4個網址的PR值,或用site:test.cn檢視網站首頁,如果結果一緻,說明網站沒有規範化問題;如果不一緻,表明有規範化問題。出現此問題時,可以将上面4個網址通過301永久重定向指向同一個網址http://www.test.cn,解決了。

如何實作301永久重定向?

一、通過代碼實作301永久重定向。

HTML網頁無法實作301永久重定向。因為HTML檔案一被讀取,就已經傳回表示一切正常的200狀态碼了。

比如,你要删除某個目錄A,想實作通路http://www.test.cn/A/時跳轉到http://www.test.cnheader(”HTTP/1.1 301 Moved Permanently”);

header(”Location:http://www.test.cn”);

exit();

?>

通路http://www.test.cn/A/其實就是通路http://www.test.cn/A/index.php,就會自動跳轉到http://www.test.cn

有個技巧:如果http://www.test.cn 網站目錄下同時存在index.html和index.asp,設定文檔優先級html>asp時,輸入http://www.test.cn通路到的是http://www.test.cn/index.html;設定文檔優先級asp>html時,通路的是http://www.test.cn/index.asp.

二、虛拟主機301永久重定向

如果你的網站空間是使用虛拟主機或合租空間,無法對WEB伺服器(IIS、Apache)進行設定,可以利用子目錄綁定實作301永久重定向。首先建立子目錄A,然後把你要進行重定向的域名A綁到這個目錄,在這個子目錄裡面建立一個index.php檔案,寫入上面介紹的代碼。那麼通路子目錄A下的index.php也即通路域名A,就會跳轉到綁定在其他子目錄上的域名B。

三、Apache實作301永久重定向。

Apache中的分布式配置檔案“.htaccess”提供了針對每個目錄改變配置的方法,即在一個特定的目錄中放置一個包含指令的檔案,其中的指令作用于此目錄及其所有子目錄。比如,在目錄A下放.htaccess,寫入代碼:

redirect 301 /A http://www.test.cn 或

redirect permanent /A http://www.test.cn

通路http://www.test.cn/A/及其子目錄時即可重定向到http://www.test.cn。若将整個網站或域名重定向到另一網站或域名,則可寫入redirect 301 / http://www.test.cn,将.htaccess放在根目錄即可。

如果要實作“批量重定向”,比如,把http://test.cn/a.html重定向到http://www.test.cn/a.html,把http://test.cn/b.html重定向到http://www.test.cn/b.html。。。等等,即把http://test.cn下的所有檔案重定向到http://www.test.cn下的同名檔案,則要用到mod_rewrite子產品。在.htaccess中寫入:

Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} ^test.cn [NC]

RewriteRule ^(.*)$ http://www.test.cn/$1 [L,R=301]

即可。

或将綁定的其他多個域名重定向到主域名:

RewriteEngine on

RewriteCond % ^test.cn$ [OR]

RewriteCond % ^bbs.test.cn$ [OR]

RewriteRule ^(.*)$ http://www.test.cn/ [R=301,L]