301重定向來實現權重的集中,因為在搜索引擎看來,帶www和不帶www的URL是2個完全不同的URL,當它們指向同一個網站時,會讓搜索引擎不懂應該選擇哪一個URL作為主要的域名。如果你用301重定向把其他幾個URL如ysext.com轉到www.ysext.com時,相應的PR也就集中在主域名:www.ysext.com上了。
毫無疑問地,唯一的域名能夠給你帶來更多的好處。不管它是帶www還是不帶www。因為這樣無論用戶還是搜索引擎都會記住你網站的唯一域名。也不會造成權重的分流。
301永久重定向是在搜索引擎優化中很常用的一個域名地址跳轉的操作,可以幫助我們轉移域名的權重,但是在做301重定向的時候由于服務器系統、網站程序語言、域名和鏈接地址的不同,使用的方法也不同,這個時候我們就需要根據具體的網站環境來制定不同的301重定向方法。
一、什么情況下使用301重定向
在我們講述301永久重定向之前(不明白什么是301永久重定向的博友,可以先看下《什么是301永久重定向》的相關介紹),首先就要先明白網站在什么情況下才會使用到301永久重定向呢?其目的又是為何呢?
1、為了網址URL的標準化
我們經常遇到的就是帶www的域名和不帶www的域名301重定向問題,在未做301重定向之前,無論是用戶或搜索引擎蜘蛛,通過這兩個網址是都能訪問網站的同一個頁面。
對于用戶可能不太在意,因為無論用哪個網址都能訪問到網站頁面,但是對于搜索引擎來說就是2個不同的URL,意味著2個頁面的權重就要分別計算了,最終結果就是網站權重的分散。
2、網站啟用了新域名
由于某些原因網站啟用了新域名,老域名這時候也需要301重定向到新的域名,這樣可以告訴搜索引擎網址啟用了新的網址或者是用戶訪問原來的網址不至于打不開而損失了流量。
我們還關心的一個問題就是老域名的權重是否能傳遞?權重的傳遞是需要一個過程的,一般谷歌的反應比百度迅速,至于權重是否能夠完全傳遞,馬海祥認為是不會的。
3、網站內部結構的調整
SEO站內優化中涉及到目錄結構的優化,有些目錄網址需要進行301重定向,還有內部一些錯誤的頁面也可以做301重定向,提高用戶體驗。
4、當需要刪除網站的某些鏈接時
當出于需要刪除網站中的某些目錄時,比如我要刪除馬海祥博客下的SEO導航,這時就可以用301永久重定向到網站首頁。
二、不同環境下使用301重定向的方法
對于網站在不同環境,不同網站后臺程序下,我們又該如何實現我們的301永久重定向呢?具體的方法有以下幾點:
1、在網站代碼中設置301的方法
(1)、PHP下的301重定向
header("HTTP/1.1 301 Moved Permanently") ; header("Location:http://www.xiuzhanwang.com/"); exit(); |
(2)、ASP下的301重定向
Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://www.xiuzhanwang.com/" Response.End |
(3)、ASP .NET下的301重定向
private void Page_Load(object sender, System.EventArgs e) { Status = "301 Moved Permanently"; AddHeader ("Location","http://www.mahaixiang.cn/); } |
2、用HTML跳轉
例如:<META HTTP-EQUIV=REFRESH CONTENT="5;URL=http://www.xiuzhanwang.com/">,表示5秒后自動跳轉到秀站網首頁,你也可以把時間設置的更短,但這樣做也很容易被搜尋引擎容易誤判為spam而遭到懲罰。
3、用javascript跳轉
<script language="javascript">location.href='http://www.xiuzhanwang.com/'>
4、利于服務器實現301重定向的方法
(1)、windows主機
在windows主機上,主要是利于IIS服務器實現301重定向具體方法步驟是:
①、打開internet信息服務管理器,在欲重定向的網頁或目錄上按右鍵;
②、選擇"重定向到URL";
③、在"重定向到"輸入框中輸入要跳轉到的目標網頁的URL地址;
④、選中"資源的永久重定向"(切記);
⑤、最后點擊"應用"。
(2)、Unix/Linux主機
pache服務器實現301重定向的方法是在.htaccess文件中增加301重定向指令:
Redirect permanent / http://www.ysext.com/ (將目錄下內容重定向到http://www.ysext.com/
Redirect permanent /index.php http://www.ysext.com/(將網頁index.php重定向到http://www.ysext.com/)
(3)、采用"mod_rewrite"技術
通過該技術進行的改變將在.htaccess文件中體現出來,形如:
RewriteEngine on
RewriteRule ^(.*)$ http://www.ysext.com/$1 [R=301,L]
或
Options +FollowSymLinks
RewriteEngine on
RewriteCond % ^xiuzhanwang.com
RewriteRule ^(.*)$ http://www.ysext.com/$1 [R=permanent,L]
這里,馬海祥再跟大家分享幾種.htaccess文件的其它幾種寫法:
①、重定向xiuzhanwang.com到www.xiuzhanwang.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ysext.com/$ [NC]
RewriteRule ^(.*)$ http://www.ysext.com/$1 [L,R=301]
②、重定向www.ysext.com到ysext.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.ysext.com$ [NC]
RewriteRule ^(.*)$ http://ysext.com/$1 [L,R=301]
③、老域名A指向新域名B
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.a.com$ [NC]
RewriteRule ^(.*)$ http://www.b.com/$1 [L,R=301]
5、綁定/本地DNS
如果具有對本地DNS記錄進行編輯修改的權限,則只要添加一個記錄就可以解決此問題,若無此權限,則可要求網站托管服務商對DNS服務器進行相應設置。
DNS服務器的具體設置方法:
若要將blog.ysext.com指向www.ysext.com,則只需在DNS服務中應增加一個別名記錄,可寫成:blog IN CNAME www.ysext.com。
如需配置大量的虛擬域名,則可寫成:* IN CNAME www.ysext.com.
這樣就可將所有未設置的以mahaixiang.cn結尾的記錄全部重定向到www.ysext.com上了。
三、轉發和重定向的區別
一句話,轉發是服務器行為,重定向是客戶端行為。具體來說就是轉發時一次請求,重定向是2次請求,轉發地址欄不會發生改變,重定向地址欄會改變,轉發在項目內,重定向可以轉到項目外。
當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。
與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。
那么,我們該怎么選擇是用重定向?還是用轉發呢?
通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇,但是由于在轉發之后,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用,如果你不想看到這樣的情況,則選擇轉發。
四、301和302的區別
301代表永久性轉移,301重定向是網頁更改地址后對搜索引擎友好的最好方法,只要不是暫時搬移的情況,馬海祥都建議使用301來做轉址。
302代表暫時性轉移,只有當一個網站或網頁在24到48小時之內臨時移到其它位置的情況下才能使用該命令。能夠對302重定向具備優異處理能力的只有Google,在前些年,不少搞SEO曾廣泛應用這項技術作弊,但也很容易遭受懲罰。
點評:
目前來說,301永久重定向是搜索引擎認可的一種域名跳轉行為,正確的使用301永久重定向對網站的SEO優化無任何負面的影響,而且網頁A的關鍵詞排名和PR級別都會傳達給網頁B,表示本網頁永久性轉移到另一個地址,給搜索引擎一個友好的信息,告訴它此頁面已永久重定向,避免搜索引擎找不到頁面。