There are questions remain, We'll search for the answers together. But one thing we known for sure,the future is not set!

【原创文章】NGINX无法捕捉404错误状态的问题

系统防护 百蔬君 3934℃ 已收录 0评论

前几天写了一篇文章《WDCP v3网站开启伪静态及转换.htaccess为nginx伪静态文件conf的方法》,讲的是怎么将apache的伪静态文件转化为nginx的问题。

但是这样之后,有一个很有意思的情况,那就是一些错误地址,比如https://www.baishujun.com/dfasdfasdfas,跳转到首页,网站目录的伪静态规则没有处理,网站配置文件nginx.conf的 error_page 400 403 404 500 502 503 504 /404.php; 也没有处理。

经过无数次的调试和琢磨,找到了原因,记录一下。

原来nginx配置文件里面还有一个规则是处理这些文件的。

        location / {
                 #try_files $uri $uri/ /?$args;
                 try_files $uri $uri/ 404;
        }

try_files的作用就是测试$uri是否存在,如果不存在就执行/?$args,找了半天不知道这个args哪里设置,就直接修改为状态码了。把 try_files $uri $uri/ /?$args;修改为 try_files $uri $uri/ 404;

这样,当路径中的文件不存在时就会返回404错误,然后把404错误的页面设置好,就ok了,不会直接跳转到首页了,如果想二级目录的错误也是这个页面的话,那么404的错误页可能需要设置完整路径https://www.baishujun.com/404.html或者../404.html

mark一下,以免忘记了。

转载请注明:百蔬君 » 【原创文章】NGINX无法捕捉404错误状态的问题

喜欢 (0)or分享 (0)
发表我的评论
取消评论

请证明您不是机器人(^v^):

表情