301重定向的作用
爲什麼要使用301轉向?首先第一條就是剛纔我們提到的爲了seo優化,在如何url網址規範化中也提到,設置301轉向後,原來的頁面將返回301 HTTP 狀態碼給瀏覽器或者搜索引擎,告知搜索引擎次頁面已經永久重定向到了新的網頁上,spider就不會索引原網頁,同時也會將原網頁的PR權重傳遞給跳轉到的新網頁。如果返回的是302狀態碼,則告訴spider頁面跳轉只是臨時的,spider仍然會索引原網頁,這就造成了重複頁面問題(即Google 補充材料)。如www.nowamagic.net 302 跳轉到 nowamagic.net,它們就會被當做兩個重複頁面。
其次,由於各種原因要更換域名時,可以使用301重定向將老域名301轉向到新的域名,這樣老域名的流量不會流失,PR權重也會轉移。另外當有註冊了多個不同域名,指向到同一網站時,也可以只設置一個主域名,將其他域名設置301轉向到主域名,這樣各個域名就不會分散權重。因此使用301轉向很有必要。
URL轉發的原理
域名服務商提供轉發的功能的話
所謂的url轉發,就是先對域名做一個CNAME記錄,然後由CNAME記錄來對應一個轉發地址,用html程序來實現跳轉。舉個例子:我要把bbs.abc.com轉發到www.abc.com/bbs目錄,那我應該怎麼做呢?
首先在abc.com裏面做一個CNAME(別名)記錄bbs,指向域名註冊商轉發服務器地址,比如 fw1.domainreg.com
然後再添加一個轉發記錄,用bbs.abc.com指向www.abc.com/bbs,剩下的工作,就交給轉發服務器。
那麼,轉發服務器又做了什麼呢?在轉發服務器上有一個綁定域名爲fw1.domainreg.com的站點,訪問bbs.abc.com的時候,由於做了CNAME記錄,會被跳轉到fw1.domainreg.com網站, 這個網站的首頁面會接收到瀏覽器地址欄上的bbs.abc.com這個地址參數,然後到數據庫裏面一查,發現了一個轉發記錄到www.abc.com/bbs,於是,它就把瀏覽器重新跳轉到www.abc.com/bbs這個地址裏面去了。
url轉發有兩種方式,隱藏轉發和(url轉發後瀏覽器地址欄輸入的網址不變)不隱藏轉發(也叫顯性轉發:url轉發後地址欄顯示的地址爲轉發後的網址)。有人測試過,不管是隱藏轉發還是不隱藏轉發,根據不同的域名註冊服務商,可能會返回不同的http header。有的域名服務商管理後臺設置的url轉發功能(URL Forwarding)會使服務器返回302狀態碼給搜索引擎,而不是301 http 狀態碼。
據說這類url轉發有的是通過給瀏覽器窗口套用一個框架iframe的方式來實現隱藏轉發,有的則是使用Javascript或Meta Refresh來實現不隱藏方式的url轉發,很少是真正用了301 重定向方法的。
所以大家還是儘量少用url轉發功能,而是自己去手工設置實現301轉向。