當(dāng)前位置:首頁(yè) >  站長(zhǎng) >  搜索優(yōu)化 >  正文

常見(jiàn)http狀態(tài)碼分析及正確設(shè)置404頁(yè)方法

 2015-03-24 17:04  來(lái)源: 互聯(lián)網(wǎng)   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

公司新來(lái)的一位SEO向我質(zhì)疑說(shuō)404頁(yè)面不能跳轉(zhuǎn)到首頁(yè),說(shuō)這樣會(huì)導(dǎo)致首頁(yè)會(huì)被K掉,還言之鑿鑿的說(shuō),夫唯也這么說(shuō)過(guò)。落葉給他的建議是,遇到問(wèn)題要多思考,SEO這個(gè)本來(lái)誤傳比較多,弄清楚404的原理,及一些狀態(tài)碼的含義,什么情況下會(huì)導(dǎo)致被誤判或弊端,思考清楚這些,誰(shuí)怎么說(shuō)已經(jīng)不重要了。

本文中分析一下各種常見(jiàn)的HTTP返回狀態(tài)含義及對(duì)應(yīng)的網(wǎng)站的出錯(cuò)情況,同時(shí)也介紹一下,IIS服務(wù)器、apache服務(wù)器及一般虛擬主機(jī)上設(shè)置404錯(cuò)誤頁(yè)的正確方法。

站長(zhǎng)常需要關(guān)注的HTTP狀態(tài)及含義:

200 :頁(yè)面正常訪問(wèn)時(shí)的返回HTTP狀態(tài)。當(dāng)一個(gè)頁(yè)面返回200狀態(tài)碼時(shí),則表示告訴瀏覽器或者搜索引擎,該頁(yè)面是可以正常到達(dá)的。

404 :頁(yè)面找不到時(shí),返回的HTTP狀態(tài)。SEO處理中如果想自定義404頁(yè)面,需要做到的是確保訪問(wèn)錯(cuò)誤頁(yè)時(shí)返回狀態(tài)為404,這樣搜索引擎才知道,這個(gè)頁(yè)面是找不到了。而通常很多站長(zhǎng)朋友們之所以對(duì)文章開(kāi)頭提到的認(rèn)為“404頁(yè)面自動(dòng)跳轉(zhuǎn)到首頁(yè)會(huì)有問(wèn)題”,原因通常是因?yàn)?04頁(yè)面跳轉(zhuǎn)時(shí)設(shè)置不當(dāng),返回了200狀態(tài)碼又沒(méi)有發(fā)現(xiàn),結(jié)果搜索引擎抓取錯(cuò)誤頁(yè)時(shí)看到的是200狀態(tài),就認(rèn)定網(wǎng)站上出現(xiàn)了大量的與首頁(yè)相同頁(yè)面,這種情況,被降權(quán)是顯然的了。有些站長(zhǎng)圖省事,直接在IDC提供的虛擬主機(jī)后臺(tái)設(shè)置404頁(yè)面,并在頁(yè)面上放置了類似或者js方式的windwo.location跳轉(zhuǎn),結(jié)果是返回200狀態(tài)。

301 :頁(yè)面永久重定向時(shí)返回的HTTP狀態(tài)。目前公認(rèn)的最正確的跳轉(zhuǎn)方法,并且可以起到權(quán)重傳遞作用。一般在程序作跳轉(zhuǎn)時(shí)先發(fā)送301狀態(tài)即可。如PHP中發(fā)送:header(“HTTP/1.1 301 Moved Permanently”); ASP中發(fā)送Response.Status=“301 Moved Permanently”

302 :頁(yè)面臨時(shí)跳轉(zhuǎn)時(shí)返回的狀態(tài)?,F(xiàn)在普遍認(rèn)為使用302跳轉(zhuǎn)容易被搜索引擎視為作弊,據(jù)傳是早期302跳轉(zhuǎn)被濫用而留下的后遺癥。落葉不能算很老的站長(zhǎng),沒(méi)見(jiàn)過(guò)被濫用啥樣子,不過(guò)呢,302跳轉(zhuǎn)更多的是作為功能性跳轉(zhuǎn),基本目前的每一個(gè)網(wǎng)站程序中都會(huì)用到,如添加一篇文章,自動(dòng)跳轉(zhuǎn)回列表頁(yè);操作成功/失敗提示自動(dòng)跳轉(zhuǎn)等。ASP中的response.redirect跳轉(zhuǎn),PHP中的普通header跳轉(zhuǎn)返回的都是302狀態(tài)。這些跳轉(zhuǎn),一般是在網(wǎng)站后臺(tái)操作時(shí)的功能性跳轉(zhuǎn),不會(huì)對(duì)SEO產(chǎn)生影響。但如果作為前臺(tái)頁(yè)面跳轉(zhuǎn),那就值得斟酌了。

500 :頁(yè)面代碼出錯(cuò)時(shí)返回的狀態(tài)。通常站長(zhǎng)朋友們經(jīng)常遇到標(biāo)題中提示“內(nèi)部服務(wù)器錯(cuò)誤”,其實(shí)這種情況大多數(shù)是因?yàn)樵L問(wèn)的網(wǎng)站或者頁(yè)面ASP或者PHP等出現(xiàn)代碼錯(cuò)誤,如語(yǔ)法錯(cuò)誤、數(shù)據(jù)庫(kù)連接錯(cuò)誤等,而恰好服務(wù)器環(huán)境關(guān)閉了出錯(cuò)信息的輸出提示,所以在出錯(cuò)時(shí),站長(zhǎng)看到的就是500狀態(tài)的“內(nèi)部服務(wù)器錯(cuò)誤”。很多朋友在遇到這個(gè)問(wèn)題時(shí),搜索一翻,發(fā)現(xiàn)好多很專業(yè)的很專業(yè)的不知所云的文章,說(shuō)了一大堆啥問(wèn)題啥問(wèn)題,而實(shí)際結(jié)果發(fā)現(xiàn),就是PHP文件某行代碼少了個(gè)分號(hào)。

常見(jiàn)的跳轉(zhuǎn)代碼返回的狀態(tài)碼:

1、靜態(tài)頁(yè)HTTP跳轉(zhuǎn):

跳轉(zhuǎn)代碼:

返回狀態(tài)碼:200

2、JS跳轉(zhuǎn)

跳轉(zhuǎn)代碼:

返回狀態(tài):200

3、JS延時(shí)跳轉(zhuǎn)

跳轉(zhuǎn)代碼:

function countDown(secs,surl){

//alert(surl);

tiao.innerText=secs;

if(--secs>0){

setTimeout("countDown)"+secs+",'"+surl+"')",1000);

}

else{

location.href=surl;

}

}

4、3秒后自動(dòng)跳轉(zhuǎn)到PHPINFO頁(yè)面

返回狀態(tài)碼:200

5、ASP的跳轉(zhuǎn)

跳轉(zhuǎn)代碼:<% response.redirect %>

返回狀態(tài):302

6、PHP跳轉(zhuǎn)

跳轉(zhuǎn)代碼:

返回狀態(tài):302

了解到這幾個(gè)常見(jiàn)的HTTP狀態(tài)碼的所代表的含義,那在不同的環(huán)境下,應(yīng)該怎樣處理,以保證404頁(yè)設(shè)置正確呢?

IIS服務(wù)器上設(shè)置404頁(yè)面

把制作好的404頁(yè)面放在網(wǎng)站根目錄下,在IIS管理器中右鍵點(diǎn)擊需要設(shè)置404的站點(diǎn)的屬性,點(diǎn)擊“自定義錯(cuò)誤”選項(xiàng)卡,在HTTP錯(cuò)誤類型列表中找到404錯(cuò)誤,進(jìn)行編輯,消息類型選擇“文件”,然后點(diǎn)擊“瀏覽”選擇網(wǎng)站根目錄下的404頁(yè)面。

原則上,該404頁(yè)面并非一定要放在網(wǎng)站根目錄下,放在網(wǎng)站的任何目錄下均可,亦可直接放到C:\WINDOWS\help\iisHelp\common\ 目錄下,并且文件名不一定需要叫404.htm

落葉做過(guò)測(cè)試,通過(guò)服務(wù)器上IIS這里設(shè)置的404頁(yè)面,只要設(shè)置方式是按如上操作的,即使404.htm是使用的原本會(huì)發(fā)送200狀態(tài)的靜態(tài)跳轉(zhuǎn)代碼或JS跳轉(zhuǎn)代碼,仍然能正常返回404狀態(tài)。

1、APACHE服務(wù)器上設(shè)置404頁(yè)面

訪問(wèn)Apache目錄下的conf目錄下的extra目錄,記事本打開(kāi)httpd-vhosts.conf,在子站點(diǎn)的配置文件中加上ErrorDocument 404 /404.html,然后做一個(gè)404.html放置在網(wǎng)站根目錄下,重啟APACHE服務(wù)即可生效。

具體示例如下:

ServerAdmin cmstong@qq.com

DocumentRoot "E:\AppServ\www\empirecms"

ServerName pmume.com

ServerAlias www.pmume.com

ErrorDocument 404 /404.html

ErrorLog "logs/dummy-host.x-error.log"

CustomLog "logs/dummy-host.x-access.log" common

2、IIS虛擬主機(jī)上設(shè)置404

目前國(guó)內(nèi)流傳的IIS下的偽靜態(tài)規(guī)則組件ISAPI_Rewrite都是試用版或者破解版,貌似都不能很好的支持301、404的重寫。所以沒(méi)辦法通過(guò)httpd.ini里面的偽靜態(tài)規(guī)則來(lái)實(shí)現(xiàn)404重寫。目前IIS虛擬主機(jī)設(shè)置404的較方便的方法,還是在IDC提供的虛擬主機(jī)管理后臺(tái)進(jìn)行404設(shè)置。但很多虛擬主機(jī)管理后臺(tái)的404設(shè)置功能并不是太理想,建議這類型的用戶404頁(yè)面中不要設(shè)置跳轉(zhuǎn),否則很可能導(dǎo)致的是404跳轉(zhuǎn)返回200狀態(tài),起到反作用。

有很多人想通過(guò)選擇404.asp或404.php,然后在404里面作些跳轉(zhuǎn),結(jié)果發(fā)現(xiàn)返回的是200狀態(tài)。其實(shí)這里還是老老實(shí)實(shí)選擇第4個(gè)吧。

3、Apache虛擬主機(jī)上設(shè)置404

根目錄下新建.htaccess文件,(一般APACHE虛擬主機(jī)根目錄下或者CMS都會(huì)提供這么一個(gè)文件,如果自己在WIN下創(chuàng)建是沒(méi)法成功的,會(huì)提示文件名不能為空。)

在里面規(guī)則后面加上ErrorDocument 404 /err404.html即可。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
404頁(yè)面

相關(guān)文章

熱門排行

信息推薦