<bdo id="vljxk"><rt id="vljxk"><noframes id="vljxk"><noframes id="vljxk"><noframes id="vljxk"><rt id="vljxk"></rt><rt id="vljxk"></rt><noframes id="vljxk"><rt id="vljxk"><delect id="vljxk"></delect></rt><noframes id="vljxk"><rt id="vljxk"></rt><noframes id="vljxk"><noframes id="vljxk"><rt id="vljxk"></rt>

當前位置:首頁 >  站長 >  搜索優化 >  正文

常見http狀態碼分析及正確設置404頁方法

 2015-03-24 17:04  來源: 互聯網   我來投稿 撤稿糾錯

  阿里云優惠券 先領券再下單

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

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

站長常需要關注的HTTP狀態及含義:

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

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

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

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

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

常見的跳轉代碼返回的狀態碼:

1、靜態頁HTTP跳轉:

跳轉代碼:

返回狀態碼:200

2、JS跳轉

跳轉代碼:

返回狀態:200

3、JS延時跳轉

跳轉代碼:

function countDown(secs,surl){

//alert(surl);

tiao.innerText=secs;

if(--secs>0){

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

}

else{

location.href=surl;

}

}

4、3秒后自動跳轉到PHPINFO頁面

返回狀態碼:200

5、ASP的跳轉

跳轉代碼:<% response.redirect %>

返回狀態:302

6、PHP跳轉

跳轉代碼:

返回狀態:302

了解到這幾個常見的HTTP狀態碼的所代表的含義,那在不同的環境下,應該怎樣處理,以保證404頁設置正確呢?

IIS服務器上設置404頁面

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

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

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

1、APACHE服務器上設置404頁面

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

具體示例如下:

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虛擬主機上設置404

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

有很多人想通過選擇404.asp或404.php,然后在404里面作些跳轉,結果發現返回的是200狀態。其實這里還是老老實實選擇第4個吧。

3、Apache虛擬主機上設置404

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

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

申請創業報道,分享創業好點子。點擊此處,共同探討創業新機遇!

相關標簽
404頁面

相關文章

熱門排行

信息推薦