时间:2023-06-02 16:16:41 来源: 人气:
今天突然发现一个问题,网站设置了自定义的 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,