很多站長(zhǎng)在做網(wǎng)站診斷的過程中,往往會(huì)查看網(wǎng)站有沒有做404頁面,一般判斷的方法很簡(jiǎn)單,就是在搜索引擎地址欄隨便輸入一個(gè)該域名錯(cuò)誤鏈接,然后看有沒有404頁面。這樣對(duì)嗎?雖然說404頁面存在的意義就是告訴瀏覽者和搜索引擎所請(qǐng)求的頁面不存在或是鏈接錯(cuò)誤,你這檢查只能說明用戶看到的是404頁面,而對(duì)于搜索引擎呢?會(huì)對(duì)這個(gè)頁面返回404狀態(tài)碼嗎?
404頁面就是當(dāng)用戶輸入了錯(cuò)誤的鏈接時(shí),返回的頁面。404頁面的目的是:告訴瀏覽者其所請(qǐng)求的頁面不存在或鏈接錯(cuò)誤,同時(shí)引導(dǎo)用戶使用網(wǎng)站其他頁面而不是關(guān)閉窗口離開。
對(duì)于一些平時(shí)也不怎么維護(hù)并且不怎么重視404頁面的企業(yè)站來說,尤其是一些虛擬空間的企業(yè)網(wǎng)站,或許也只是簡(jiǎn)單的放個(gè)404頁面,點(diǎn)擊能跳轉(zhuǎn)到404頁面也就了事了,可卻從仔細(xì)的去未去查看HTTP返回的狀態(tài)碼,猶如下圖所示:
(訪客看到的404頁面)
(返回狀態(tài)為“200”的404頁面)
由上圖我們可以看出,該網(wǎng)站盡管對(duì)訪客跳轉(zhuǎn)的是404頁面,但是對(duì)于搜索引擎而言卻是一個(gè)正常的頁面,這往往是由于錯(cuò)誤的服務(wù)器端配置而導(dǎo)致返回“200”狀態(tài)碼,雖然對(duì)訪問的用戶而言,HTTP狀態(tài)碼是“404”還是“200”并沒有什么區(qū)別,一樣是提高了用戶體驗(yàn),但對(duì)搜索引擎而言,這則是相當(dāng)重要的,甚至是致命的。
當(dāng)搜索引擎蜘蛛在請(qǐng)求某個(gè)錯(cuò)誤URL地址得到“404”狀態(tài)回應(yīng)時(shí),即知道該URL地址已經(jīng)失效,便不再索引該網(wǎng)頁,并向數(shù)據(jù)中心反饋將該URL地址表示的網(wǎng)頁從索引數(shù)據(jù)庫中刪除,而當(dāng)搜索引擎對(duì)于這個(gè)404頁面得到的是“200”狀態(tài)回應(yīng)時(shí),則會(huì)認(rèn)為該url地址是有效的,便會(huì)去索引,并會(huì)將其收錄到索引數(shù)據(jù)庫,這樣你的所有錯(cuò)誤頁面對(duì)于搜索引擎來說都是不同url地址內(nèi)容相同的頁面,這會(huì)導(dǎo)致出現(xiàn)大量重復(fù)頁面,會(huì)大大降低網(wǎng)站質(zhì)量的評(píng)分,甚至直接降權(quán)。
所以正確設(shè)置的自定義404錯(cuò)誤頁面,不僅應(yīng)當(dāng)能夠正確地顯示,同時(shí),應(yīng)該返回“404”錯(cuò)誤代碼,而不是200或其他的。不僅要告訴用戶該頁面不存在,也要正確的讓搜索引擎知道這是404錯(cuò)誤頁面而不是一個(gè)正常的頁面。
1、ISS中404錯(cuò)誤頁面設(shè)置
打開IIS管理器-->點(diǎn)擊要設(shè)置自定義404的網(wǎng)站的屬性-->點(diǎn)擊自定義錯(cuò)誤選項(xiàng)-->選中404頁-->選中并打開編輯屬性-->設(shè)置成文件或默認(rèn)值-->URL 里填寫“/404.html”,按確定退出。再把做好的404.html頁面上傳到網(wǎng)站根目錄下。此處在“消息類型”中一定要選擇“文件”或“默認(rèn)值”,而不要選擇“URL”,不然,將導(dǎo)致返回“200”狀態(tài)碼。
2、Apache下設(shè)置404錯(cuò)誤頁面很簡(jiǎn)單,一般都是有一個(gè)404錯(cuò)誤頁面設(shè)置的功能,只需要自己做好一個(gè)404頁面,上傳到對(duì)應(yīng)的目錄就可以了。至于要想把你的404頁面做的與眾不同的話,你可以參考一下馬海祥博客上的《如何正確設(shè)置多樣性的404頁面》相關(guān)介紹。
3、一些主機(jī)的空間默認(rèn)就是返回值320或200狀態(tài)碼,怎么辦呢?我們可以通過下面的代碼來解決:
(1)、ApacheServer下設(shè)置404錯(cuò)誤頁面
建立一個(gè).htaccess文件,在其中加入如下內(nèi)容:ErrorDocument 404/notfound.php,然后將.htaccess文件上傳到網(wǎng)站根目錄,最后制作一個(gè)404頁面,命名為notfound.php,和上面的名字一定要統(tǒng)一,同樣上傳到網(wǎng)站根目錄就OK了。這里切記不要使用絕對(duì)URL,如果使用絕對(duì)URL返回的狀態(tài)碼是302或200了。
(2)、IIS/asp .net下設(shè)置404錯(cuò)誤頁面
首先,修改應(yīng)用程序根目錄的設(shè)置,打開web.config文件,引用以下內(nèi)容:
error.asp為系統(tǒng)默認(rèn)的404頁面名,notfound.asp為自定義的404頁面,使用時(shí)請(qǐng)修改相應(yīng)文件名。
然后,在自定義的404頁面notfound.asp中加入以下代碼,便可以保證IIS服務(wù)器能夠正確地返回404狀態(tài)碼。
<% Response.Status = 404 Not Found%>
總而言之,網(wǎng)站的404頁面一定要設(shè)置好,如果說返回的是200狀態(tài)碼那就是自找麻煩,不如不做。我們?cè)?04頁面設(shè)置完成后,一定要檢查是否正確,返回的一定要是404狀態(tài),如果你網(wǎng)站因?yàn)楫a(chǎn)生較多200碼404頁面而導(dǎo)致降權(quán),那是非常悲劇的。