自定義404錯誤頁面

2021-04-18 09:02:54 字數 1485 閱讀 8386

自定義404頁面返回不當狀態碼如"200"等給**最終seo效果帶來的不利影響,因此,確保自定義的404錯誤頁面能夠返回"404"狀態碼是極為重要的,也是**優化與seo的基本要求。

這一點如何保證呢?如何才能為**設定能夠正常工作的404錯誤頁面?

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

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

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

1>apache下設定404錯誤頁面

為apache server設定 404錯誤頁面的方法很簡單,只需在.htaccess 檔案中加入如下內容即可:

errordocument 404 /notfound.php

當然,把"/notfound.php" 改為自定義404錯誤頁面的位址和名稱。

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

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

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

errordocument 404 /index.php

iis/asp.net一直是404頁面不能正確返回"404"狀態碼的重災區,尤其對動態網頁而言,很多**在使用iis管理器設定404自定義錯誤頁面後發現其返回碼卻是"302" + "200"。

2>在iis/asp.net下設定404動態頁面

注:上文例中"error.asp"為系統預設的404頁面,"notfound.asp"為自定義的404頁面,使用時請修改相應檔名。

然後,在自定義的404頁面"notfound.asp"中加入:

<% response.status = "404 not found" %>

這樣,便可以保證iis能夠正確地返回"404"狀態碼。

注:為顯示方便,上文**中使用的是全形的"<"與">",應用時應將其改為半形字元。

3>在iis/asp.net下設定404靜態頁面

設定靜態404錯誤頁面的方法則比較簡單,在iis管理器中右鍵單擊要管理的**,開啟"屬性"中的"自定義錯誤資訊"頁,為"404"設定相應的錯誤信 息頁即可。不過,此處在"訊息型別"中一定要選擇"檔案"或"預設值",而不要選擇"url",不然,將導致返回"200"狀態碼。

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

nginx自定義404錯誤頁面

注意事項 首先建立乙個404錯誤時顯示的頁面,如放在你的 根目錄下的404.html。內容隨便 在nginx.conf中的http區域加入fastcgi intercept errors on 在nginx.conf的server區域 如果 有單獨的配置檔案,則需要在其配置檔案的server區域內加...

htaccess 404錯誤頁面自定義詳解

本文將詳細介紹利用.htaccess檔案進行404錯誤頁面定義的方法。404是錯誤的代號,代表著你訪問的這個頁面在 中找不到。一般來說,預設的404頁面是不返回任何資料,ie瀏覽器中會提示 找不到該頁 該頁無法顯示 但是你會發現有一些 即使是找不到頁面,也能顯示乙個非常有藝術的404頁面。我之前的一...

apache之404錯誤頁面自定義跳轉說明

404錯誤其實就是我們經常見到的找不到檔案的錯誤,但是那是預設的效果,很難看。有時候我們需要的這樣的功能 我們要記錄下來404是的頁面時哪些,更有些時候我需要判斷404頁面是不是本來系統應該生成的靜態頁面但是沒有生成成功的,如果是,我們應該生成這個靜態頁面,然後把生成的靜態頁面返回給使用者。我要處理...