301永久重定向是什么東西?
作者:晉城網站建設 日期:2012-02-16
所謂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]