爲網站設置自定義404錯誤頁面

在上篇文章中我們探討過自定義404頁面返回不當狀態碼如“200”等給網站最終SEO效果帶來的不利影響,因此,確保自定義的404錯誤頁面能夠返回“404”狀態碼是極爲重要的,也是網站優化與SEO的基本要求。

  這一點如何保證呢?如何才能爲網站設置能夠正常工作的404錯誤頁面?下面針對不同情況詳細介紹。

定製404錯誤頁面的基本原則

  首先應明確的是,404錯誤應工作在服務器級而不是網頁級。對定製使用動態頁面如PHP腳本類型的404頁時,必須確保在PHP執行前服務器已經順利地送出“404”狀態碼,不然,一旦執行到了ISAPI級別,返回的狀態碼便只能是“200”或其他如“302”之類的重定向狀態碼了。

  其次,無效鏈接有可能指向網站內的任何位置,因此,在定製網站的404錯誤頁面時,對其中的鏈接應使用絕對路徑而不是相對路徑。這點相信很容易理解,考慮一下“http://www.highdiy.com/a/a.html”與“http://www.highdiy.com/a.html”這樣兩個位於不同目錄深度的無效鏈接,當404錯誤頁中鏈接使用相對路徑時便會徹底亂套。

Apache下設置404錯誤頁面

  爲Apache Server設置 404錯誤頁面的方法很簡單,只需在.htaccess 文件中加入如下內容即可:

ErrorDocument 404 /notfound.php

  當然,把”/notfound.php” 改爲自定義404錯誤頁面的地址和名稱。

  尤其需要注意的是,不要採取如下的方式:

ErrorDocument 404 http://www.highdiy.com/notfound.php

  這樣設置則是錯誤的:其將返回“200”狀態碼而不是“404”。

  另外,需要注意的是,如果您的.htaccess存在類似這樣的內容:

ErrorDocument 404 /index.php

  切記要將其刪除:這種將404錯誤轉向到網站主頁的作法存在極大的風險,嚴重時會導致主頁在搜索引擎中消失。

IIS/ASP.net下設置404錯誤頁面

  IIS/ASP.net一直是404頁面不能正確返回“404”狀態碼的重災區,尤其對動態網頁而言,很多網站在使用IIS管理器設置404自定義錯誤頁面後發現其返回碼卻是“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”狀態碼。

  當然,在設置完成後,最好用Server Header檢查工具檢查一下設定是否正確。

發佈了22 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章