搜尋
首頁運維NginxNginx中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請求返回404頁面

2、編輯網站設定文件,例如本站:

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

,在server 區段加入下面程式碼:

error_page 404 = /404.html;

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

Nginx中404頁面怎麼設定及AJAX請求返回404頁面

3、測試設定檔是否正確: 

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

,回傳下面程式碼通過:

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

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

Nginx中404頁面怎麼設定及AJAX請求返回404頁面

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.html
this is 404 page.

請求一個不存在的頁面:

Nginx中404頁面怎麼設定及AJAX請求返回404頁面

#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請求返回404頁面

進入object看看詳細:

Nginx中404頁面怎麼設定及AJAX請求返回404頁面

找不到請求的頁面並回傳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請求返回404頁面

再來看看ajax請求的:

Nginx中404頁面怎麼設定及AJAX請求返回404頁面

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

[object object],error,not found

然後點選進入object看看:

Nginx中404頁面怎麼設定及AJAX請求返回404頁面

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

 下面是其它網友的補充:

一.nginx錯誤頁面優雅顯示的原因?
當我們造訪網站時,由於特殊的原因,經常會出現諸如403,404,503等錯誤,這極大的影響用戶的訪問體驗,所以我們很有必要做一下錯誤頁面的優雅顯示,以提升用戶的瀏覽體驗。

二.nginx下如何定義優雅顯示的頁面呢?
下面我們就以404錯誤為例,具體步驟如下:
1.建立自己的404.html頁面,放在網站目錄下面;
2.更改nginx.conf設定文件,在http模組中加入fastcgi_intercept_errors on;
3.更改nginx.conf設定文件,在server模組中加入:error_page 404 /404.html;#error_page 404 =http://www.hulala.com/404.html;#error_page 404 =http://www.hulala.com/404.html;
4.更改後檢查語法/nginx/sbin/nginx -t ,並重啟nginx;
現在,404錯誤的頁面優雅顯示已經配置ok了。

舉一反三:502、403 等其他錯誤可以用同樣的方法來設定。
error_page 500 502 503 504 /50x.html;
error_page 403 /403.html;
注意:
#在nginx中錯誤重定向生效的兩個前提條件是:設定了fastcgi_intercept_errors on,並且正確的設定了error_page這個選項。

以上是Nginx中404頁面怎麼設定及AJAX請求返回404頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
NGINX與Apache:網絡託管和流量管理NGINX與Apache:網絡託管和流量管理Apr 12, 2025 am 12:04 AM

NGINX适合高并发和低资源消耗场景,Apache适用于需要复杂配置和功能扩展的场景。1.NGINX以高性能处理大量并发连接著称。2.Apache以稳定性和丰富模块支持见长。选择时需根据具体需求决定。

NGINX:現代Web應用程序的多功能工具NGINX:現代Web應用程序的多功能工具Apr 11, 2025 am 12:03 AM

NGINXisessentialformodernwebapplicationsduetoitsrolesasareverseproxy,loadbalancer,andwebserver,offeringhighperformanceandscalability.1)Itactsasareverseproxy,enhancingsecurityandperformancebycachingandloadbalancing.2)NGINXsupportsvariousloadbalancingm

NGINX SSL/TLS配置:使用HTTPS確保您的網站NGINX SSL/TLS配置:使用HTTPS確保您的網站Apr 10, 2025 am 09:38 AM

通過Nginx配置SSL/TLS來確保網站安全,需要以下步驟:1.創建基本配置,指定SSL證書和私鑰;2.優化配置,啟用HTTP/2和OCSPStapling;3.調試常見錯誤,如證書路徑和加密套件問題;4.應用性能優化建議,如使用Let'sEncrypt和會話復用。

NGINX面試問題:ACE您的DevOps/System Admin面試NGINX面試問題:ACE您的DevOps/System Admin面試Apr 09, 2025 am 12:14 AM

Nginx是高性能的HTTP和反向代理服務器,擅長處理高並發連接。 1)基本配置:監聽端口並提供靜態文件服務。 2)高級配置:實現反向代理和負載均衡。 3)調試技巧:檢查錯誤日誌和測試配置文件。 4)性能優化:啟用Gzip壓縮和調整緩存策略。

NGINX緩存技術:改善網站性能NGINX緩存技術:改善網站性能Apr 08, 2025 am 12:18 AM

Nginx缓存可以通过以下步骤显著提升网站性能:1)定义缓存区和设置缓存路径;2)配置缓存有效期;3)根据不同内容设置不同的缓存策略;4)优化缓存存储和负载均衡;5)监控和调试缓存效果。通过这些方法,Nginx缓存能减少后端服务器压力,提升响应速度和用户体验。

帶Docker的NGINX:部署和縮放容器化應用程序帶Docker的NGINX:部署和縮放容器化應用程序Apr 07, 2025 am 12:08 AM

使用DockerCompose可以簡化Nginx的部署和管理,通過DockerSwarm或Kubernetes進行擴展是常見的做法。 1)使用DockerCompose定義和運行Nginx容器,2)通過DockerSwarm或Kubernetes實現集群管理和自動擴展。

高級NGINX配置:掌握服務器塊和反向代理高級NGINX配置:掌握服務器塊和反向代理Apr 06, 2025 am 12:05 AM

Nginx的高級配置可以通過服務器塊和反向代理實現:1.服務器塊允許在一個實例中運行多個網站,每個塊獨立配置。 2.反向代理將請求轉發到後端服務器,實現負載均衡和緩存加速。

NGINX性能調整:針對速度和低潛伏期進行優化NGINX性能調整:針對速度和低潛伏期進行優化Apr 05, 2025 am 12:08 AM

Nginx性能調優可以通過調整worker進程數、連接池大小、啟用Gzip壓縮和HTTP/2協議、使用緩存和負載均衡來實現。 1.調整worker進程數和連接池大小:worker_processesauto;events{worker_connections1024;}。 2.啟用Gzip壓縮和HTTP/2協議:http{gzipon;server{listen443sslhttp2;}}。 3.使用緩存優化:http{proxy_cache_path/path/to/cachelevels=1:2k

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器