什么是URL重寫之URL重寫優(yōu)化 |
發(fā)布日期:2011-03-22 分類:網(wǎng)站運(yùn)營 |
|
一、什么是URL標(biāo)準(zhǔn)化 很多情況下,我們認(rèn)為以下這幾個(gè)鏈接都指向同一個(gè)頁面(首頁): www.example.com example.com/ www.example.com/index.html example.com/index.php 但是從URL發(fā)送請(qǐng)求并返回網(wǎng)頁內(nèi)容的過程來看,這些URL都是互不相同的。對(duì)于上述URLs,Web服務(wù)器完全可以返回完全不同的內(nèi)容。當(dāng)這些URL所對(duì)應(yīng)的內(nèi)容都一樣時(shí)(一般情況下都一樣的),谷歌需要從上述URLs中選一個(gè)具有代表性的,而忽略其余的。那么這個(gè)被谷歌選擇了的URL,就是一個(gè)標(biāo)準(zhǔn)化的URL。谷歌選擇的這個(gè)過程稱為“標(biāo)準(zhǔn)化”。 谷歌是怎么URL標(biāo)準(zhǔn)化的? 一般情況下,谷歌根據(jù)被外鏈的數(shù)量來判斷。采用多的,則是標(biāo)準(zhǔn)化URL。 我想告訴谷歌我想要的標(biāo)準(zhǔn)化URL,怎么辦? 可以采用301重定向進(jìn)行URL標(biāo)準(zhǔn)化。 二、如何把動(dòng)態(tài)鏈接靜態(tài)化 這是SEO過程中最經(jīng)常碰到的問題,也是必須解決的問題。因?yàn)樗阉饕嫦矚g靜態(tài)頁面。從Web服務(wù)器的角度,這個(gè)問題轉(zhuǎn)變?yōu)椋喝绾螌㈧o態(tài)化的文件名稱轉(zhuǎn)化成參數(shù)。 需要兩步來處理: 1、把網(wǎng)頁上帶鏈接的地方,都換上新的靜態(tài)化鏈接。搜索引擎和瀏覽器將通過該鏈接來發(fā)生請(qǐng)求。(有些人做修改不是在網(wǎng)頁上,而是進(jìn)行動(dòng)態(tài)鏈接向靜態(tài)鏈接的轉(zhuǎn)向,這是嚴(yán)重錯(cuò)誤的) 2、在httpd.conf或.htaccess中使用RewriteRule: RewriteRule "^/dir/ ([^./]*) \.html" "/dir/script.cgi?doc=$1" [PT] [PT]標(biāo)記告訴Apache執(zhí)行后續(xù)的所有操作。 通過這個(gè)功能,使動(dòng)態(tài)頁面以靜態(tài)鏈接的形式展示給搜索引擎,從而達(dá)到URL優(yōu)化的目的。如seowhy整站都是通過該方式實(shí)現(xiàn)。 三、如何將效的URL重定向到其它頁面 很多時(shí)候,我們考慮把無效的URL比如:用戶拼錯(cuò)的URL、不存在的URL重定向到別的網(wǎng)頁,例如網(wǎng)站的首頁、404頁面等。 在httpd.conf或.htaccess文件中使用ErrorDocument來捕獲404 (找不到文件)錯(cuò)誤: ErrorDocument 404 /index.html DirectoryIndex index.html /path/to/notfound.html 本功能會(huì)讓所有的404錯(cuò)誤——每次當(dāng)某人請(qǐng)求無效的URL 時(shí),都返回URL / index.html 提供的網(wǎng)站首頁。 這里需要注意兩點(diǎn): 1、直接指向首頁是否是合適的?或者讓它指向到一個(gè)404頁面會(huì)更好些?如果在404頁面用javasctrip做一個(gè)跳轉(zhuǎn)到首頁,也是SEO允許的做法。 2、即使返回有效的文件,仍然會(huì)將404 狀態(tài)碼返回給客戶端和搜索引擎。這表示搜索引擎機(jī)器人來確認(rèn)網(wǎng)站上的鏈接時(shí),仍然會(huì)得到正確的結(jié)果(404狀態(tài)碼)。關(guān)于狀態(tài)碼:詳細(xì)請(qǐng)參考:網(wǎng)站常見狀態(tài)碼及IIS錯(cuò)誤代碼大全 四、改版時(shí)如何保留原鏈接,創(chuàng)建新的URL 具體操作辦法(僅適用于apache網(wǎng)絡(luò)服務(wù)器): 文件位置:apache->conf->httpd.conf 請(qǐng)?jiān)趆ttpd.conf中使用Alias指令:Alias /newurl /www/htdocs/oldurl 如:用戶訪問新的地址example.com/newurl/id34.html 服務(wù)器將提供的內(nèi)容原地址是example.com/www/htdocs/oldurl/id34.html。 注意:Alias只會(huì)改變本地URL,如example.com/newurl/id34.html 的/newurl/id34.html 部分,而無法改變URL的主機(jī)名稱部分(如:http://www.example.com/部分)。若要更改URL的主機(jī)名稱部分,請(qǐng)使用Redirect或RewriteRule指令。 菜鳥指南:本功能的Alias指令在 httpd.conf中是這一句: #Alias /webpath /full/filesystem/path 去掉前面的#,并做下相應(yīng)的修改即可。 SEO過程中一般在這些情況下需要用到該功能: 1、當(dāng)文件移動(dòng)或文件目錄名稱發(fā)現(xiàn)改變,出于SEO需要,你需要保持舊的URL; 2、網(wǎng)站改版了,網(wǎng)站導(dǎo)航和鏈接發(fā)生變化,為了繼續(xù)持有原鏈接帶來的流量,你需要保持舊的URL; 3、你希望不同的人用不同URL來鏈接同一個(gè)的內(nèi)容。(SEO一般不建議這樣做)等等。。 五、如何替換請(qǐng)求中的URL文字 以下解決方案,僅適用于Apache服務(wù)器。 在.htaccess文件中添加以下語句: 折疊展開PHP CodeRewriteCond %{REQUEST_URL} "string1" RewriteRule "(.*)"string1(.*)" "$1string2$2" [N,PT] 例如當(dāng)客戶端發(fā)出請(qǐng)求URL:example.com/string1/abcstring1.html,則轉(zhuǎn)換為目標(biāo)URL:example.com/string2/abcstring2.html。其中[N]標(biāo)記告訴Apache重新執(zhí)行重寫規(guī)則,直到RewriteCond失效為止。只要請(qǐng)求URL中包含需要替換的字符串,它就會(huì)一直重復(fù)地執(zhí)行。當(dāng)所有的string1都被替換完畢,則RewriteCond失效。本例子中,RewriteCond執(zhí)行了2次。[PT]告訴mod_rewrite把重寫的URL傳送到Apache來進(jìn)行接下來的處理工作。 我們都知道,關(guān)鍵字是否在URL中對(duì)于網(wǎng)站SEO至關(guān)重要。對(duì)于建站初期不注重SEO的站點(diǎn),特別是大型站點(diǎn),本功能真是雪中送炭。 注意:使用本功能時(shí),有時(shí)會(huì)把非目標(biāo)字符也做了修改,假如例子中的“abcstring1”不是目標(biāo)字符,但這個(gè)功能也會(huì)替換了它。 |
聯(lián)系客服