• 欢迎访问金刀客博客!
  • 2024,春节快乐!

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

原创天空 admin 42963次浏览 已收录 1个评论

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

但是这样之后,有一个很有意思的情况,那就是一些错误地址,比如http://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的错误页可能需要设置完整路径http://www.baishujun.com/404.html或者../404.html

mark一下,以免忘记了。


金刀客博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明【原创文章】NGINX无法捕捉404错误状态的问题
喜欢 (18)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到
(1)个小伙伴在吐槽
  1. 写的很好,很喜欢
    匿名2019-03-30 20:38 回复