- 01 什麼是自定義404錯誤頁面?
404自定義錯誤頁面就是當使用者輸入了錯誤的url位址或者輸入了乙個不存在的url位址時,所返回的乙個頁面,它的目的是:告訴瀏覽者其所請求的頁面不存在或鏈結錯誤,同時引導使用者使用**其他頁面而不是關閉視窗**離開。
02 404自定義錯誤頁面是如何形成的?
錯誤意味著鏈結指向的網頁不存在,即原始網頁的url失效,這種情況經常會發生,很難避免,比如說:網頁url生成規則改變、網頁檔案更名或移動位置、匯入鏈結拼寫錯誤等,導致原來的url位址無法訪問;當web
伺服器接到類似請求時,會返回乙個404
狀態碼,告訴瀏覽器要請求的資源並不存在。但是,web伺服器預設的404錯誤頁面,無論apache伺服器還是iis伺服器,均十分簡陋、呆板且對使用者不友好,無法給使用者提供必要的資訊以獲取更多線索,無疑這會造成使用者的流失。
因此,很多**均使用自定義404錯誤的方式以提供使用者體驗避免使用者流失。一般而言,自定義404頁面通用的做法是在頁面中放置**快速導航鏈結、搜尋框以及**提供的特色服務,這樣可以有效的幫助使用者訪問站點並獲取需要的資訊。
03 404自定義錯誤頁面對seo的影響
自定義404錯誤頁面是增強使用者體驗的很好的做法,但在應用過程中,**製作者往往並未注意到對搜尋引擎的影響,譬如:錯誤的伺服器端配置導致返回「200」狀態碼或自定義404錯誤頁面使用meta
refresh屬性導致返回「302」狀態碼。正確設定的自定義404錯誤頁面,不僅應當能夠正確地顯示,同時,應該返回「404」錯誤**,而不是
「200」或「302」。雖然對訪問的使用者而言,http狀態碼究竟是「404」還是「200」來說並沒有什麼區別,但對搜尋引擎這則是相當重要的。
所以要確保404頁面返回的是404**而不是200和302.在自定義404錯誤頁面設定完畢後,一定要檢查一下其是不是能夠正確地返回「404」狀態碼。可以使用server
header檢查工具,輸入乙個不存在網頁的url,檢視一下http header的返回情況,確信其返回的是「404 not found」。
04 定製404錯誤頁面的基本原則
首先應明確的是,404錯誤頁面應工作在伺服器級而不是網頁級。對定製使用動態頁面如php指令碼型別的404頁(如:404.php、404.asp、404.aspx等)時,必須確保在php執行前伺服器已經順利地送出「404」狀態碼,不然,一旦執行到了isapi(一般執行在windows伺服器上的偽靜態指令碼服務技術)級別,返回的狀態碼便只能是「200」或其他如「302」之類的重定向狀態碼了。對於大部分使用了windows虛擬主機,同時又支援php程式執行的伺服器,一般都使用了isapi技術,他們可以提供兩種自定義技術,一種靜態404.htm頁面,
這種頁面一般不直接放在**的根目錄之下,而是放在乙個「httperror」這個資料夾之下,但是返回的狀態碼是「200」,另一種是動態404頁(如:404.php)等的設定,這種設定,就是在**的根目錄之下放乙個404.php之類的動態頁面,這樣會返回狀態碼「404」,所以**的製作者,在虛擬主機的後台設定時,必須看清楚自己的設定,如何要做**的seo優化,那麼就要設定成能返回「404」狀態碼的那種,否則就會吃大虧。
其次,在自定義**的404錯誤頁面時,對設定的錯誤頁面url鏈結應使用相對路徑而不是絕對路徑,而且自定義404頁面應該放在**根目錄下。儘管無效鏈結可能是多種形式的url,但當發生404訪問錯誤時,web伺服器會自動將其轉到自定義的當404錯誤頁中,這跟url的形似沒有關係。
05 404錯誤頁面的設定方法
01 apache伺服器下設定404錯誤頁面
為apache server設定
404錯誤頁面的方法很簡單,首先製作乙個名為404.html/404.htm/404.php/404.asp/404.aspx的頁面,視空間要求而定,再在.htaccess
檔案中加入如下內容即可(.htaccess檔案一般linux空間會自帶的,如果沒有這個檔案,自己可以用記事本寫乙個,命名為.htaccess,一定要記得去掉記事本檔案的.txt哦。而windows虛擬空間是沒有這個檔案的,也不用上傳這個檔案):
(1).切記不要將404錯誤跳轉到**主頁,比如使用了js指令碼或者meta
refresh跳轉技術。否則可能會導致主頁在搜尋引擎中消失或者不被收錄。
(2).切記不要使用絕對url如果使用絕對url返回的狀態碼是「302」+「200」。
02 iis/asp.net下設定404錯誤頁面
<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」狀態碼。
所有的設定完成之後,別忘記檢測http狀態,確定返回的是404,而不是200。
NGINX伺服器如何配置404錯誤頁面轉向
什麼是404頁面 如果碰巧 出了問題,或者使用者試圖訪問乙個並不存在的頁面時,此時伺服器會返回 為404的錯誤資訊,此時對應頁面就是404頁面。404頁面的預設內容和具體的伺服器有關。如果後台用的是nginx伺服器,那麼404頁面的內容則為 404 not found 為什麼要自定義404頁面 在訪...
Nginx設定404錯誤頁面跳轉
linux版本 centos 7.4 nginx版本 nginx 1.14.0.tar.gz nginx安裝目錄參考 usr local nginx則是我的安裝目錄說明 我linux伺服器上已經在tomcat上部署了乙個專案,使用nginx進行的 訪問專案不存在的頁面時,出現的是nginx預設的40...
遠端伺服器返回錯誤 404 未找到
說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.net.webexception 遠端伺服器返回錯誤 404 未找到。源錯誤 行 20 public void listallproducts 行 2...