今天在網上找了很多關於404頁面的相關資料,目的就是為了吃透關於404的一些知識。
登陸google管理工具後台,發現網站未驗證,並提示:我們檢測到您的 404(找不到文件)錯誤頁在標頭中返回了 200 (成功) 狀態。(當出現這種問題時候 一定要注意了)
用google sitemaps驗證自己的網站的時候,如果用html文件驗證,始終遇到這樣的錯誤(我們檢測到您的 404(找不到文件)錯誤頁面在響應標頭中返回狀態代碼 200 (OK)),而無法完成驗證而只能用元標記來驗證。
這是主機404文件配置有問題,網友是這麼說的,但是本人在404錯誤頁上根據網站資料進行了設置,並在自定義404錯誤頁面設置完畢後,使用Server Header檢查工具,輸入一個不存在網頁的url,查看一下HTTP Header的返回情況,返回的不是“404 Not found”,還是200狀態碼。
不管在服務器的空間提供商的後台管理如何更改或刪除自定義404錯誤頁面設置,效果都一樣,http狀態返回值都是200,而不是“404 Not found”。後來集中生智,干脆把自己編寫的自定義404錯誤頁面刪除掉,而服務器的後台自定義404錯誤設置還是保留404錯誤頁的鏈接。用Server Header檢查工具,測試一下,竟然發現狀態碼返回的是404,而且是系統默認的404錯誤頁面。
網站資料如下(說明:前兩類網站空間服務器大部分不支持,只支持.html或htm):
(一)Apache下設置404錯誤頁面
為Apache Server設置 404錯誤頁面的方法很簡單,只需在.htaccess 文件中加入如下內容即可:ErrorDocument 404 /notfound.php
注意:
1.切記不要將404錯誤轉向到網站主頁,否則可能會導致主頁在搜索引擎中消失
2.切記不要使用絕對URL,如果使用絕對URL返回的狀態碼是“302”+“200”(已測試)
(二)IIS/ASP.net下設置404錯誤頁面
首先,修改應用程序根目錄的設置,打開 “web.config” 文件編輯,在其中加入如下內容:
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="error.asp">
<error statusCode="404" redirect="notfound.asp" />
</customErrors>
</system.web>
</configuration>
注:上文例中“error.asp”為系統默認的404頁面,“notfound.asp”為自定義的404頁面,使用時請修改相應文件名。
然後,在自定義的404頁面“notfound.asp”中加入:
<%
Response.Status = “404 Not Found”
%>
這樣,便可以保證IIS能夠正確地返回“404”狀態碼
(三)在IIS/ASP.net下設置404靜態頁面
設置靜態404錯誤頁面的方法則比較簡單,在IIS管理器中右鍵單擊要管理的網站,打開“屬性”中的“自定義錯誤信息”頁,為“404”設定相應的錯誤信息頁即可。不過,此處在“消息類型”中一定要選擇“文件”或“默認值”,而不要選擇“URL”,不然,將導致返回“200”狀態碼。