国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx中404頁面的配置及AJAX請求返回404頁面的方法

2024-08-30 12:28:08
字體:
來源:轉載
供稿:網友
404是請求頁面不存在的錯誤代碼,在Nginx中有時處理jQuery中的ajax方法雖然能返回404頁面但錯誤代碼卻返回200,針對此問題我們具體來看一下Nginx中404頁面的配置及AJAX請求返回404頁面的方法
 

404頁面基礎配置
404錯誤是WWW網站訪問容易出現的錯誤。最常見的出錯提示:404 NOT FOUND。404錯誤頁的設置對網站SEO有很大的影響,而設置不當,比如直接轉跳主頁等,會被搜索引擎降權拔毛。404頁面的目的應該是告訴用戶:你所請求的頁面是不存在的,同時引導用戶瀏覽網站其他頁面而不是關掉窗口離去。搜索引擎通過HTTP狀態碼來識別網頁的狀態。當搜索引擎獲得了一個錯誤鏈接時,網站應該返回404狀態碼,告訴搜索引擎放棄對該鏈接的索引。而如果返回200或302狀態碼,搜索引擎就會為該鏈接建立索引,這導致大量不同的鏈接指向了相同的網頁內容。結果是,搜索引擎對網站的信任度大幅降低。
下面是LNMP設置Nginx 404錯誤頁教程:
1、

vi /usr/local/nginx/conf/nginx.conf 

編輯Nginx配置文件,在http 區段添加下面代碼:

fastcgi_intercept_errors on;

Nginx,404頁面,AJAX

2、編輯網站配置文件,比如本站:

vi /usr/local/nginx/conf/vhost/onelone.com.conf 

,在server 區段添加下面代碼:

error_page 404 = /404.html; 

注意:有網友測試上行代碼需要去掉等號才會返回正確的404狀態,所以請同學們自行測試是否要去掉等號。

Nginx,404頁面,AJAX

3、測試配置文件是否正確: 

/usr/local/nginx/sbin/nginx -t

,返回下面代碼通過:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is okconfiguration file /usr/local/nginx/conf/nginx.conf test is successful

4、重啟LNMP生效:/root/lnmp restart 。

Nginx,404頁面,AJAX

5、404錯誤頁面制作的注意事項:
(1)不要將404錯誤轉向到網站主頁,否則可能會導致主頁在搜索引擎中被降權或消失。   
(2)不要使用絕對URL,如果使用絕對URL返回的狀態碼是302+200,這樣會產生大量的重復網頁。
(3)404頁面設置完成,一定要檢查是否正確。http頭信息返回的一定要是404狀態。這個可以通過服務器頭部信息檢查工具進行檢查。
(4)404頁面不要自動跳轉,讓用戶來決定去向。
自定義的404頁面必須大于512字節,否則可能會出現IE默認的404頁面。

AJAX請求的404頁面返回
前幾天,一朋友出程序出問題卻怎么查都沒看出問題,于是讓我幫它看看。其實它是ajax請求了很多個模板,然后把模板寫到頁面中。關鍵是所有請求的頁面都是200正常狀態碼返回,表面上看沒什么問題,實際上有些請求雖然返回200狀態碼,但給回的狀態碼是200。WebServer是nginx,直接告訴我應該他們配置了nginx的404錯誤頁面,雖然請求不存在的資源可以成功返回404頁面,但返回狀態碼確是200。

404.htmlThis is 404 page.

請求一個不存在的頁面:

Nginx,404頁面,AJAX

ajax Code:

$.ajax({ url: "does_not_exist.html", success : function(Response, textStatus){  console.log(textStatus+":"+Response); }, error : function(XMLHttpRequest, textStatus, errorThrown){  console.log([XMLHttpRequest, textStatus, errorThrown].join(",")); }});

執行結果:

Nginx,404頁面,AJAX

進入Object看看詳細:

Nginx,404頁面,AJAX

找不到請求的頁面并返回404頁面信息,但狀態碼依然是200,所以jQuery沒有走error函數回調而是直接走success回調了。
應該是配置寫的有問題,于是打開nginx.conf,發現他們配置這么寫:

error_page 404 = /404.html;

于是我查閱官網文檔,把上面的表達式改寫為:

error_page 404  /404.html;

然后重啟

D:/nginx-1.5.11>nginx.exe -s reload

再來試試:

Nginx,404頁面,AJAX

再來看看ajax請求的:

Nginx,404頁面,AJAX

明顯看到相比前面那條返回標紅404狀態碼,下面console.log出來的是

[object Object],error,Not Found

然后點擊進入Object看看:

Nginx,404頁面,AJAX

status值是404。既實現返回404頁面,又能返回404狀態碼讓ajax請求能夠根據狀態碼判斷頁面請求狀況進行錯誤處理。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉沽区| 无棣县| 马龙县| 霍山县| 定南县| 奉化市| 敦化市| 鄂温| 广灵县| 兴和县| 云和县| 侯马市| 永善县| 阳曲县| 二手房| 剑阁县| 荔浦县| 满洲里市| 温宿县| 阳城县| 海宁市| 龙陵县| 昌吉市| 任丘市| 灵璧县| 定兴县| 嘉义市| 筠连县| 左贡县| 宾川县| 左云县| 全南县| 岑巩县| 贵港市| 长顺县| 襄汾县| 房山区| 自贡市| 桂阳县| 诸城市| 黎城县|