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

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

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

  域名預(yù)訂/競價,好“米”不錯過

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

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

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

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

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

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

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

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

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

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

跳轉(zhuǎn)代碼:

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

2、JS跳轉(zhuǎn)

跳轉(zhuǎn)代碼:

返回狀態(tài):200

3、JS延時跳轉(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秒后自動跳轉(zhuǎn)到PHPINFO頁面

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

5、ASP的跳轉(zhuǎn)

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

返回狀態(tài):302

6、PHP跳轉(zhuǎn)

跳轉(zhuǎn)代碼:

返回狀態(tài):302

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

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

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

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

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

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

訪問Apache目錄下的conf目錄下的extra目錄,記事本打開httpd-vhosts.conf,在子站點(diǎn)的配置文件中加上ErrorDocument 404 /404.html,然后做一個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

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

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

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

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

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

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

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

相關(guān)文章

熱門排行

信息推薦