路由選擇的變化也是對(duì)數(shù)據(jù)報(bào)文經(jīng)由路徑的一種重定向?
在我們的網(wǎng)站淘星建設(shè)中,時(shí)常會(huì)遇到需要網(wǎng)頁(yè)重定向的情況:像網(wǎng)站調(diào)整,如改變網(wǎng)頁(yè)目錄結(jié)構(gòu),網(wǎng)頁(yè)被移到一個(gè)新地址,再或者,網(wǎng)頁(yè)擴(kuò)展名改變,如因應(yīng)用需要把.php改成.Html或.shtml,在這種情況下,如果不做重定向,則用戶收藏夾或搜索引擎數(shù)據(jù)庫(kù)中舊地址只能讓訪問(wèn)客戶還會(huì)得到一個(gè)404頁(yè)面錯(cuò)誤信息,訪問(wèn)流量白白喪失;再如某些注冊(cè)了多個(gè)域名的網(wǎng)站,也需要通過(guò)重定向讓訪問(wèn)這些域名的用戶自動(dòng)跳轉(zhuǎn)到主站點(diǎn),等等。
常用的重定向方式有: 301 redirect, 302 redirect 與 meta fresh:
301 redirect: 301代表永久性轉(zhuǎn)移(Permanently Moved),301重定向是網(wǎng)頁(yè)更改地址后對(duì)搜索引擎友好的最好方法,只要不是暫時(shí)搬移的情況,都建議使用301來(lái)做轉(zhuǎn)址。
302 redirect: 302代表暫時(shí)性轉(zhuǎn)移(Temporarily Moved ),在前些年,不少Black Hat SEO曾廣泛應(yīng)用這項(xiàng)技術(shù)作弊,目前,各大主要搜索引擎均加強(qiáng)了打擊力度,象Google前些年對(duì)Business.com以及近來(lái)對(duì)BMW德國(guó)網(wǎng)站的懲罰。即使網(wǎng)站客觀上不是spam,也很容易被搜尋引擎容易誤判為spam而遭到懲罰。
meta fresh: 這在2000年前比較流行,不過(guò)現(xiàn)在已很少見(jiàn)。其具體是通過(guò)網(wǎng)頁(yè)中的meta指令,在特定時(shí)間后重定向到新的網(wǎng)頁(yè),如果延遲的時(shí)間太短(約5秒之內(nèi)),會(huì)被判斷為spam。?
301 Redirect實(shí)現(xiàn)網(wǎng)頁(yè)重定向
IIS服務(wù)器實(shí)現(xiàn)301重定向
* 打開(kāi)internet信息服務(wù)管理器,在欲重定向的網(wǎng)頁(yè)或目錄上按右鍵
* 選擇“重定向到URL”
* 在“重定向到”輸入框中輸入要跳轉(zhuǎn)到的目標(biāo)網(wǎng)頁(yè)的URL地址
* 選中“資源的永久重定向”(切記)
* 最后點(diǎn)擊“應(yīng)用”
Apache服務(wù)器實(shí)現(xiàn)301重定向
相比較來(lái)說(shuō),Apache實(shí)現(xiàn)起來(lái)要比IIS簡(jiǎn)單多了。在Apache中,有個(gè)很重要的文件.htaccess,通過(guò)對(duì)它的設(shè)置,可以實(shí)現(xiàn)很多強(qiáng)大的功能,301重定向只是其中之一。
redirect permanent /index.php http://www.bloghuman.com/index.php?go=category_6(將網(wǎng)頁(yè)index.php重定向到http://www.bloghuman.com/index.php?go=category_6)
通過(guò)合理地配置重定向參數(shù)中的正則表達(dá)式,可以實(shí)現(xiàn)更復(fù)雜的匹配。有興趣的朋友可參考本站Apache手冊(cè)。
PHP下的301重定向
?
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: http://www.48pp.com" );
?
ASP下的301重定向
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.48pp.com"
%>
ASP .NET下的301重定向
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader ("Location","http://www.48pp.com");
}
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.2008sili.com"> 舊域名重定向到新域名
創(chuàng)建一個(gè).htaccess文件,并將下面提供的代碼寫入文件內(nèi),它可以確保舊域名所有的目錄或者網(wǎng)頁(yè)正確的跳轉(zhuǎn)到新域名內(nèi)。
記住.htaccess文件一定要放在舊網(wǎng)站的根目錄下,并且新網(wǎng)站要和舊網(wǎng)站保持相同的目錄結(jié)構(gòu)及網(wǎng)頁(yè)文件
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]?
請(qǐng)將上面的www.domain.com修改成你想要跳轉(zhuǎn)到的域名。
此外,我建議大家歸總舊網(wǎng)站的外部鏈接,并聯(lián)系相應(yīng)的站點(diǎn)修改導(dǎo)入鏈鏈的URL,以指向新站點(diǎn)。
注意:.htaccess文件只有在使用安裝有Mod Rewrite模塊的Apache作為WEB服務(wù)器的Linux主機(jī)上才能起作用
域名301重定向到www的二級(jí)域名
在以前的文章中我反復(fù)提及過(guò):www.domain.com是domain.com域下的一個(gè)二級(jí)域名,并對(duì)二級(jí)域名和一級(jí)目錄之間如何選擇以及網(wǎng)站結(jié)構(gòu)優(yōu)化做了一個(gè)詳細(xì)的分析,有興趣的可以讀一下兩篇文章,網(wǎng)站結(jié)構(gòu)優(yōu)化是SEO中最重要。
OK,繼續(xù)域301跳轉(zhuǎn)到www二級(jí)域的實(shí)現(xiàn)方式:
創(chuàng)建一個(gè).htaccess文件,并將下面提供的代碼寫入文件內(nèi),它可以確保所有來(lái)自對(duì)domain.com的請(qǐng)求都轉(zhuǎn)向到對(duì)www.domain.com進(jìn)行請(qǐng)求。記住.htaccess文件一定要放在舊網(wǎng)站的根目錄下,并且新網(wǎng)站要和舊網(wǎng)站保持相同的目錄結(jié)構(gòu)及網(wǎng)頁(yè)文件
Options +FollowSymlinks
RewriteEngine on
rewritecond % ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]?
請(qǐng)將上面的domain.com和www.domain.com修改成你想要跳轉(zhuǎn)到的域名。
注意:.htaccess文件只有在使用安裝有Mod Rewrite模塊的Apache作為WEB服務(wù)器的Linux主機(jī)上才能起作用
301重定向檢測(cè)工具
配置完成后,一定認(rèn)真檢查一下是否正確。Internet有很多類似的Server Header檢查工具,如Check Server Headers Tool - HTTP Status Codes Checker
網(wǎng)站302重定向使用不當(dāng)導(dǎo)致被GOOGLE懲罰
Business.com是網(wǎng)上最大的商業(yè)搜索引擎和分類目錄,以專業(yè)提供商業(yè)信息而享負(fù)盛名,包括近19萬(wàn)網(wǎng)頁(yè)。若以“business”為關(guān)鍵詞在Google中進(jìn)行搜索,該網(wǎng)站名列第一。不過(guò)在9月5日,Business.com遇到一件蹊蹺之事:它的首頁(yè)由PR8變成了PR0, 而且Google搜索結(jié)果中找不到首頁(yè)。好在被“蒸發(fā)”的只是首頁(yè),不過(guò)慶幸的是第二天首頁(yè)又回到了Google的搜索結(jié)果,但PR仍舊為0。?
Business.com的問(wèn)題出在它的重定向命令上。該網(wǎng)站讓business.com跳轉(zhuǎn)到www.business.com,這種重定向本該是永久性的。我們知道,301屬于永久性重定向,而302則屬于臨時(shí)性重定向,只有當(dāng)一個(gè)網(wǎng)站或網(wǎng)頁(yè)在24到48小時(shí)之內(nèi)臨時(shí)移到其它位置的情況下才能使用該命令。但Business.com卻錯(cuò)誤地使用了“HTTP/1.1302 Object Moved”狀態(tài)碼。?
其實(shí)網(wǎng)站重定向極為普遍,譬如不滿意原來(lái)的域名而申請(qǐng)了一個(gè)新域名;買下容易被人錯(cuò)拼的域名,防止客戶因?yàn)槠村e(cuò)URL而找不到網(wǎng)站,等等。可是,很多人卻會(huì)由于使用了錯(cuò)誤的重定向狀態(tài)碼而遭“滅站之災(zāi)”,就象Business.com。盡管他們的重定向理由充分合理,然而若使用不當(dāng),則可能被Google誤認(rèn)為是利用多個(gè)域名指向同一網(wǎng)站,那么你的網(wǎng)站就會(huì)被封掉,罪名是“利用重復(fù)的內(nèi)容來(lái)干擾Google搜索結(jié)果的網(wǎng)站排名”。Business.com就是最好的前車之鑒。只不過(guò)大多數(shù)使用錯(cuò)誤重定向參數(shù)的網(wǎng)站沒(méi)Business.com這么幸運(yùn),一個(gè)小小的重定向就可能使網(wǎng)站前功盡棄,只能從頭來(lái)過(guò):重新申請(qǐng)新域名,重新發(fā)布新網(wǎng)站,等等。記住:Google絕不會(huì)同情任何人即使無(wú)心犯下的錯(cuò)誤。?
網(wǎng)站服務(wù)器響應(yīng)網(wǎng)頁(yè)瀏覽請(qǐng)求的運(yùn)作流程
讓我們先來(lái)了解一下用戶/搜索引擎和網(wǎng)站一開(kāi)始的交互流程。當(dāng)用戶或搜索引擎向一個(gè)網(wǎng)站服務(wù)器發(fā)出網(wǎng)頁(yè)瀏覽請(qǐng)求時(shí),該服務(wù)器將:
1.通過(guò)域名服務(wù)器(DNS)將域名轉(zhuǎn)換為網(wǎng)站的IP地址,然后返回給客戶
2.打開(kāi)一個(gè)該IP套接口連接
3.記下通過(guò)該套接口的一個(gè)HTTP數(shù)據(jù)流
4.從WEB服務(wù)器接收一個(gè)響應(yīng)請(qǐng)求的HTTP數(shù)據(jù)流。該數(shù)據(jù)流包含狀態(tài)碼,狀態(tài)碼的值由HTTP協(xié)議所決定。這里所說(shuō)的“HTTP數(shù)據(jù)流”信息也叫“頭信息(Header)”。頭信息中包括了日期,服務(wù)器類型,通常還會(huì)有一條“200 OK”信息。如果一切良好,那么網(wǎng)絡(luò)服務(wù)器就會(huì)將“200 OK”信息以及請(qǐng)求頁(yè)面發(fā)送出去。如果網(wǎng)站在這時(shí)候已經(jīng)建立了重定向,那么服務(wù)器就會(huì)在頭信息中包含一個(gè)“302 Moved Temporarily”或“301 Moved Permanent”之類的響應(yīng)信息。搜索引擎會(huì)根據(jù)服務(wù)器頭信息中的內(nèi)容作出決定。?
網(wǎng)站重定向的注意事項(xiàng)
1.若準(zhǔn)備將服務(wù)器上的文件移到其它地方時(shí),須就以下信息正確地通知搜索引擎的爬行程序:
- 目標(biāo)地址:這些文件被移向何方?
- 移動(dòng)屬性:暫時(shí)移走還是永久性移走
2.對(duì)擁有多個(gè)域名的網(wǎng)站,專家建議應(yīng)把那些不想在搜索引擎上推廣的域名用301跳轉(zhuǎn)命令來(lái)永久性重定向。?
確保網(wǎng)站實(shí)施了正確的301重定向
對(duì)于正確實(shí)施301重定向,有這樣幾個(gè)方法可供大家參考:
1.在.htaccess文件中增加301重定向指令
2.適用于使用Unix網(wǎng)絡(luò)服務(wù)器的用戶。通過(guò)此指令通知搜索引擎的spider你的站點(diǎn)文件不在此地址下。這是較為常用的辦法。形如:Redirect 301 / http://www.yourdomain.com/
3.在服務(wù)器軟件的系統(tǒng)管理員配置區(qū)完成301重定向?
適用于使用Window網(wǎng)絡(luò)服務(wù)器的用戶
4.采用“mod_rewrite”技術(shù)
通過(guò)該技術(shù)進(jìn)行的改變將在.htaccess文件中體現(xiàn)出來(lái),形如:
Options +FollowSymLinks?
RewriteEngine on?
RewriteCond % ^yourdomain.com?
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]?
5.綁定/本地DNS(域名別名跳轉(zhuǎn))
如果具有對(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è)置
若要將aaa.domain.com指向www.domain.com,則只需在DNS服務(wù)中應(yīng)增加一個(gè)別名記錄,可寫成:aaa IN CNAME www.domain.com。
如需配置大量的虛擬域名,則可寫成:* IN CNAME www.domain.com.
這樣就可將所有未設(shè)置的以domain.com結(jié)尾的記錄全部重定向到www.domain.com上。
6.用ASP/PHP實(shí)現(xiàn)301重定向:
代碼在上面已經(jīng)介紹過(guò)了
資深SEO專家Dan Thies的看法和建議
對(duì)于Business.com所遭遇的問(wèn)題Dan Thies深有體會(huì),因?yàn)樗灿羞^(guò)類似的遭遇。他的網(wǎng)站上有一個(gè)會(huì)員跟蹤腳本,其中一個(gè)會(huì)員的站點(diǎn)通過(guò)302命令映射到這個(gè)跟蹤腳本,而這個(gè)跟蹤腳本又是通過(guò)302映射到他的主頁(yè)。當(dāng)在Google中用“keyword research”進(jìn)行搜索,他的主頁(yè)排名在前十位,然而地址顯示的卻是那個(gè)會(huì)員的網(wǎng)址。結(jié)果使他哭笑不得:訪問(wèn)者通過(guò)Google搜索結(jié)果進(jìn)入他的網(wǎng)站,而他卻不得不為這些訪問(wèn)量給那個(gè)會(huì)員支付報(bào)酬! 后來(lái)他用robots.txt文件禁止Spiders跟蹤訪問(wèn)他的會(huì)員跟蹤腳本才算解決了問(wèn)題。?
對(duì)于Business.com,Dan Thies認(rèn)為:“目前Google在302重定向"的處理上還存在一定的問(wèn)題,但并不表示Google不允許302重定向。Business.com并未遭封或遭到懲罰,它們只是返回了錯(cuò)誤的響應(yīng)。”?
Dan Thies建議:如果使用了跟蹤URL/腳本,又必須讓訪問(wèn)者重定向到某一著陸頁(yè),那么一定要在robots.txt文件中禁止Spiders去訪問(wèn)第二個(gè)重定向。如果沒(méi)有對(duì)跟蹤URL/腳本進(jìn)行重定向,而只是把另外一個(gè)URL上的內(nèi)容給復(fù)制過(guò)來(lái),那么應(yīng)在robots.txt文件中禁止Spiders去訪問(wèn)跟蹤URL,以防因內(nèi)容重復(fù)而遭搜索引擎懲罰。
301重定向經(jīng)驗(yàn)談
一個(gè)多域名站主的經(jīng)驗(yàn)之談:
“我只有一個(gè)網(wǎng)站淘星,主域名是www.domain.com,此外還有諸如domain1.com、domain2.com、domain3.com等共計(jì)十幾個(gè)域名。所有這些次級(jí)域名都映射到www.domain.com,而且所有域名對(duì)應(yīng)的是同一個(gè)IP地址。由于事實(shí)上我只有一個(gè)站點(diǎn),一個(gè)站點(diǎn)又只能對(duì)應(yīng)一個(gè).htaccess文件,顯然不可能直接修改.htaccess文件來(lái)實(shí)現(xiàn)重定向。我采用了如下步驟:
A.把domain1.com從domain.com上獨(dú)立出來(lái),讓它成為服務(wù)器上的一個(gè)普通獨(dú)立網(wǎng)站。
B.為domain1.com創(chuàng)建一個(gè).htaccess文本文件,并在文件中設(shè)置重定向代碼為:
Redirect permanent / http://www.domain.com/
再將修改后的.htaccess文件上傳給domain1.com所在服務(wù)器。
這一步也可以在域名控制面板中完成。
C.進(jìn)入域名控制面板,將所有原來(lái)綁定到domain.com上的域名從domain.com上釋放,然后重新綁定到doamin1.com。這樣一來(lái),這些被綁定的域名使用的都是domain1.com的.htaccess文件,因而也就意味著它們都被永久性重定向到domain.com上了。好了,大功告成! 就這么容易!