今天突然發現一個問題,網站設置了自定義的 404 頁面, 顯示的是沒有問題, 只是返回的狀態碼是 200, 而不是404!!
去看我的 nginx 配置:
nginx.conf
代碼如下
server {
...
error_page 404 = /404.php;
...
}
乍一看是沒啥,網上搜了一下才知道多了個等號!!! 改為這樣:
nginx.conf
代碼如下
server {
...
error_page 404 /404.php;
...
}
補充一下其它狀態代碼定義方法
更改nginx.conf在http定義區域加入: fastcgi_intercept_errors on;
為指定位置設定一個404頁面
代碼如下
location /my_blog {
error_page 404 = /article_not_found.html;
}
你可以用單個錯誤頁面一起來處理多個錯誤代碼
代碼如下
location /my_blog {
error_page 500 502 503 504 = /server_error.html
}
重定向到一個完全不同的服務器,假設你在http區域定義有一個上游服務器server2:
代碼如下
upstream server2 {
server 10.0.0.1:80;
}
server {
location /my_blog {
error_page 404 = @try_server2;
}
location @try_server2 {
proxy_pass http://server2;
}
這個功能可以用在Nginx前端+Apache後端的服務器架構中。
測試配置
/usr/local/nginx/sbin/nginx -t
沒錯誤就重啟nginx
/etc/init.d/nginx restart