為網(wǎng)站設(shè)置自定義404錯誤頁面
作者:晉城網(wǎng)站建設(shè) 日期:2012-02-16
在上篇文章中我們探討過自定義404頁面返回不當狀態(tài)碼如“200”等給網(wǎng)站最終SEO效果帶來的不利影響,因此,確保自定義的404錯誤頁面能夠返回“404”狀態(tài)碼是極為重要的,也是網(wǎng)站優(yōu)化與SEO的基本要求。
這一點如何保證呢?如何才能為網(wǎng)站設(shè)置能夠正常工作的404錯誤頁面?下面針對不同情況詳細介紹。
定制404錯誤頁面的基本原則首先應明確的是,404錯誤應工作在服務(wù)器級而不是網(wǎng)頁級。對定制使用動態(tài)頁面如PHP腳本類型的404頁時,必須確保在PHP執(zhí)行前服務(wù)器已經(jīng)順利地送出“404”狀態(tài)碼,不然,一旦執(zhí)行到了ISAPI級別,返回的狀態(tài)碼便只能是“200”或其他如“302”之類的重定向狀態(tài)碼了。
其次,無效鏈接有可能指向網(wǎng)站內(nèi)的任何位置,因此,在定制網(wǎng)站的404錯誤頁面時,對其中的鏈接應使用絕對路徑而不是相對路徑。這點相信很容易理解,考慮一下“http://m.jinjiusolutions.com.cn/a/a.html”與“http://m.jinjiusolutions.com.cn/a.html”這樣兩個位于不同目錄深度的無效鏈接,當404錯誤頁中鏈接使用相對路徑時便會徹底亂套。
Apache下設(shè)置404錯誤頁面為Apache Server設(shè)置 404錯誤頁面的方法很簡單,只需在.htaccess 文件中加入如下內(nèi)容即可:
ErrorDocument 404 /notfound.php
當然,把”/notfound.php” 改為自定義404錯誤頁面的地址和名稱。
尤其需要注意的是,不要采取如下的方式:
ErrorDocument 404 http://www.highdiy.com/notfound.php
這樣設(shè)置則是錯誤的:其將返回“200”狀態(tài)碼而不是“404”。
另外,需要注意的是,如果您的.htaccess存在類似這樣的內(nèi)容:
ErrorDocument 404 /index.php
切記要將其刪除:這種將404錯誤轉(zhuǎn)向到網(wǎng)站主頁的作法存在極大的風險,嚴重時會導致主頁在搜索引擎中消失。
IIS/ASP.net下設(shè)置404錯誤頁面IIS/ASP.net一直是404頁面不能正確返回“404”狀態(tài)碼的重災區(qū),尤其對動態(tài)網(wǎng)頁而言,很多網(wǎng)站在使用IIS管理器設(shè)置404自定義錯誤頁面后發(fā)現(xiàn)其返回碼卻是“302” + “200”。
在IIS/ASP.net下設(shè)置404動態(tài)頁面
首先,修改應用程序根目錄的設(shè)置,打開 “web.config” 文件編輯,在其中加入如下內(nèi)容:
<configuration>
<system.web>
<customErrors mode=”On” defaultRedirect=”error.asp”>
<error statusCode=”404″ redirect=”notfound.asp” />
</customErrors>
</system.web>
</configuration>
注:上文例中“error.asp”為系統(tǒng)默認的404頁面,“notfound.asp”為自定義的404頁面,使用時請修改相應文件名。
然后,在自定義的404頁面“notfound.asp”中加入:
<%
Response.Status = “404 Not Found”
%>
這樣,便可以保證IIS能夠正確地返回“404”狀態(tài)碼。
注:為顯示方便,上文代碼中使用的是全角的“<”與“>”,應用時應將其改為半角字符。
在IIS/ASP.net下設(shè)置404靜態(tài)頁面
設(shè)置靜態(tài)404錯誤頁面的方法則比較簡單,在IIS管理器中右鍵單擊要管理的網(wǎng)站,打開“屬性”中的“自定義錯誤信息”頁,為“404”設(shè)定相應的錯誤信息頁即可。不過,此處在“消息類型”中一定要選擇“文件”或“默認值”,而不要選擇“URL”,不然,將導致返回“200”狀態(tài)碼。
當然,在設(shè)置完成后,最好用Server Header檢查工具檢查一下設(shè)定是否正確。