Nginx mengakses halaman html statik Apabila halaman ini tidak wujud, Nginx membuang 404, Jadi bagaimana caranya kembalikan 404 kepada pelanggan?
Lihat konfigurasi di bawah dalam kes ini, tidak perlu mengubah suai sebarang parameter untuk mencapai fungsi ini.
server { listen 80; server_name www.test.com; root /var/www/test; index index.html index.htm; location / { }# 定义错误页面码,如果出现相应的错误页面码,转发到那里。error_page 404 403 500 502 503 504 /404.html;# 承接上面的location。location = /404.html {# 放错误页面的目录路径。root /usr/share/nginx/html; } }
Jika ralat pemprosesan Tomcat latar belakang melemparkan 404, anda mahu memanggil Nginx untuk maklum balas status ini kepada pelanggan atau mengubah hala ke sambungan tertentu adalah seperti berikut:
upstream www { server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s; ip_hash; } server { listen 80; server_name www.test.com; root /var/www/test; index index.html index.htm; location / {if ($request_uri ~* ‘^/$’) { rewrite .* http://www.test.com/index.html redirect; }# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面proxy_intercept_errors on; proxy_pass http://www; proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } }
Jika bahagian belakang dihuraikan oleh PHP, anda perlu menambah pembolehubah
Tambahkannya dalam bahagian http Pembolehubah fastcgi_intercept_errors on akan melakukan silap mata.
Nyatakan halaman ralat:
error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } 指定一个url地址: error_page 404 /404.html; error_page 404 = http://www.test.com/error.html;
Atas ialah kandungan terperinci Bagaimana untuk menyesuaikan halaman 404 eksklusif dalam Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!