這篇文章可看可不看,以前講301重定向都是回復(fù)別人的評(píng)論,而沒(méi)在自己博客上發(fā)布過(guò)一篇詳細(xì)關(guān)于301重定向的文章,在我印象中,已經(jīng)有好幾位朋友讓我發(fā)布一篇關(guān)于301重定向的文章。索性今天我就詳細(xì)寫(xiě)一下吧,也許此文對(duì)你有用,也許此文對(duì)大多數(shù)人已經(jīng)是再常見(jiàn)不過(guò)的問(wèn)題了,你說(shuō)是吧weiking。
301永久重定向?qū)EO無(wú)任何不好的影響,而且網(wǎng)頁(yè)A的關(guān)鍵詞排名和PR級(jí)別都會(huì)傳達(dá)給網(wǎng)頁(yè)B,網(wǎng)站更換了域名,表示本網(wǎng)頁(yè)永久性轉(zhuǎn)移到另一個(gè)地址,對(duì)于搜索引擎優(yōu)化|SEO來(lái)說(shuō),給搜索引擎一個(gè)友好的信息,告訴它此頁(yè)面已永久重定向,避免搜索引擎找不到頁(yè)面。
什么情況下使用301重定向
1:網(wǎng)站更換域名時(shí),通過(guò)301永久重定向?qū)⑴f域名重定向至新域名,挽回流量損失和SEO。
2:當(dāng)出于需要?jiǎng)h除網(wǎng)站中的某些目錄時(shí),比如我要?jiǎng)h除我博客下的博客導(dǎo)航,這時(shí)就可以用301永久重定向到網(wǎng)站首頁(yè)。
3:如果你有多個(gè)閑置域名時(shí)需要指向同一網(wǎng)站時(shí),通過(guò)301永久重定向可以實(shí)現(xiàn)。
4:你打算實(shí)現(xiàn)網(wǎng)址規(guī)范化。
如何實(shí)現(xiàn)網(wǎng)址規(guī)范化
我重點(diǎn)講講這個(gè)網(wǎng)址規(guī)范化,因?yàn)檫@是大家很容易忽略的問(wèn)題。例如我的域名,如果不做任何設(shè)置,它默認(rèn)會(huì)產(chǎn)生四個(gè)網(wǎng)址:
(1)yeencms.com(2)yeencms.com(3)yeencms.com/default.html(4)yeencms.com/default.html
如果不做301重定向會(huì)導(dǎo)致:你站點(diǎn)主域名的pr值分散到其他幾個(gè)URL了。先查詢上面4個(gè)網(wǎng)址的PR值,如果結(jié)果一致,說(shuō)明網(wǎng)站沒(méi)有規(guī)范化問(wèn)題;如果不一致,表明有規(guī)范化問(wèn)題。這時(shí)候我們就需要使用301永久定向技術(shù)來(lái)實(shí)現(xiàn)網(wǎng)址的規(guī)范化了。需要注意的是,帶www和不帶www的兩個(gè)網(wǎng)址,www其實(shí)是個(gè)二級(jí)域名。
我所知道的常用的301重定向設(shè)置方法有2種。一個(gè)是通過(guò)IIS界面直接設(shè)置,另外一個(gè)是通過(guò)代碼來(lái)實(shí)現(xiàn)301重定向設(shè)置。盧松松建議用服務(wù)器組件來(lái)做重定向,我以下例子以我的域名yeencms.com301重定向到y(tǒng)eencms.com進(jìn)行講解。
1:IIS 服務(wù)器實(shí)現(xiàn)301 重定向
打開(kāi)IIS,右鍵-屬性-網(wǎng)站-IP地址哪里點(diǎn)編輯增加一個(gè)站點(diǎn),增加一個(gè)站點(diǎn),綁定的一下主機(jī)頭,也可以綁定多個(gè)閑置域名。如圖所示:
打開(kāi)IIS,首先新建立一個(gè)站點(diǎn),隨便對(duì)應(yīng)一個(gè)目錄E:wwwroot301web。該目錄下只需要2個(gè)文件,一個(gè) default.html,一個(gè)404.htm。在欲重定向的網(wǎng)頁(yè)或目錄上按右鍵;選中“重定向到URL”;在對(duì)話框中輸入目標(biāo)頁(yè)面的地址;切記,記得選 中“資源的永久重定向”;當(dāng)然,最后要點(diǎn)擊“應(yīng)用”,完成。如下圖所示:
2:Apache 服務(wù)器實(shí)現(xiàn)301 重定向
在Apache 中,有個(gè)很重要的文件.htaccess,通過(guò)對(duì)它的設(shè)置,可以實(shí)現(xiàn)很多強(qiáng)大的功能,301 重定向只是其中之一。找到redirect permanent / http://yeencms.com:
redirect permanent /old.html http://yeencms.com:修改這句即可。
3:在.htaccess文件中增加301重定向指令
采用“mod_rewrite”技術(shù),形如:
RewriteEngine on
RewriteRule ^(.)$ http://yeencms.com/$1 [R=301,L]
4:適用于使用Unix網(wǎng)絡(luò)服務(wù)器的用戶
通過(guò)此指令通知搜索引擎的spider你的站點(diǎn)文件不在此地址下。這是較為常用的辦法。
形如:Redirect 301 / http://yeencms.com/
5:在服務(wù)器軟件的系統(tǒng)管理員配置區(qū)完成301重定向
適用于使用Window網(wǎng)絡(luò)服務(wù)器的用戶
6:綁定/本地DNS
如果具有對(duì)本地DNS記錄進(jìn)行編輯修改的權(quán)限,則只要添加一個(gè)記錄就可以解決此問(wèn)題。若無(wú)此權(quán)限,則可要求網(wǎng)站托管服務(wù)商對(duì)DNS服務(wù)器進(jìn)行相應(yīng)設(shè)置。
DNS服務(wù)器的設(shè)置
若要將blog.yeencms.com指向yeencms.com,則只需在DNS服務(wù)中應(yīng)增加一個(gè)別名記錄,可寫(xiě)成:blog IN CNAME yeencms.com。
如需配置大量的虛擬域名,則可寫(xiě)成: IN CNAME yeencms.com.這樣就可將所有未設(shè)置的以yeencms.com結(jié)尾的記錄全部重定向到y(tǒng)eencms.com上。
7:用ASP/PHP實(shí)現(xiàn)301重定向:
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://yeencms.com/"
Response.End
PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://yeencms.com/");
exit();
301重定向代碼和測(cè)試工具
國(guó)外:http://www.seoconsultants.com/tools/headers
國(guó) 內(nèi):http://www.ranknow.cn/tools/redirectcheck
如 果出現(xiàn)結(jié)果200表明請(qǐng)求已成功,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。
常用的跳轉(zhuǎn)方式
301代表永久性轉(zhuǎn)移,301重定向是網(wǎng)頁(yè)更改地址后對(duì)搜索引擎友好的最好方法,只要不是暫時(shí)搬移的情況,都建議使用301來(lái)做轉(zhuǎn)址。
302代表 暫時(shí)性轉(zhuǎn)移,只有當(dāng)一個(gè)網(wǎng)站或網(wǎng)頁(yè)在24到48小時(shí)之內(nèi)臨時(shí)移到其它位置的情況下才能使用該命令。能夠?qū)?02重定向具備優(yōu)異處理能力的只有 Google,在前些年,不少搞SEO曾廣泛應(yīng)用這項(xiàng)技術(shù)作弊,但也很容易遭受懲罰。
用HTML跳轉(zhuǎn):<META HTTP-EQUIV=REFRESH CONTENT="5;URL=http://www.yeencms.com">, 表示5秒后自動(dòng)跳轉(zhuǎn)到首頁(yè),你也可以把時(shí)間設(shè)置的更短,但也很容易被搜尋引擎容易誤判為spam而遭到懲罰。
用javascript跳 轉(zhuǎn):<script language="javascript">location.href='http://www.yeencms.com'</script>
轉(zhuǎn)發(fā)和重定向的區(qū)別
一句話,轉(zhuǎn)發(fā)是服務(wù)器行為,重定向是客戶端行為。轉(zhuǎn)發(fā)時(shí)一次請(qǐng)求,重定向是2次請(qǐng)求,轉(zhuǎn)發(fā)地址欄不會(huì)發(fā)生改變,重定向地址欄會(huì)改變,轉(zhuǎn)發(fā)在項(xiàng)目?jī)?nèi),重定向 可以轉(zhuǎn)到項(xiàng)目外。當(dāng)使用轉(zhuǎn)發(fā)時(shí),JSP容器將使用一個(gè)內(nèi)部的方法來(lái)調(diào)用目標(biāo)頁(yè)面,新的頁(yè)面繼續(xù)處理同一個(gè)請(qǐng)求,而瀏覽器將不會(huì)知道這個(gè)過(guò)程。 與之相反,重定向方式的含義是第一個(gè)頁(yè)面通知瀏覽器發(fā)送一個(gè)新的頁(yè)面請(qǐng)求。
怎么選擇是重定向還是轉(zhuǎn)發(fā)
通常情況下轉(zhuǎn)發(fā)更快,而且能保持request內(nèi)的對(duì)象,所以他是第一選擇。但是由于在轉(zhuǎn)發(fā)之后,瀏覽器中URL仍然指向開(kāi)始頁(yè)面,此時(shí)如果重載當(dāng)前頁(yè) 面,開(kāi)始頁(yè)面將會(huì)被重新調(diào)用。如果你不想看到這樣的情況,則選擇轉(zhuǎn)發(fā)。