server - nginx error_page 404 未生效

【字号: 日期:2022-06-29浏览:28作者:雯心

问题描述

在禁用未绑定域名和ip直接访问nginx时,我创建如下server

server { listen 80 default; server_name _; fastcgi_intercept_errors on; error_page 404 /data/www/error_page/404.html; return 404;}

error_page 内容如下:

404 Not Found!

nginx -t 测试通过nginx -s reload 重新加载成功为何返回的依旧是nginx自带的404页面呢?查过手册确是如此设置404页面的~

问题解答

回答1:

error_page的第二个参数是URI, 即相对于站点根目录的路径,并非物理路径

按你的需求,建议改为:

root /data/www;error_page 404 /error_page/404.html;回答2:

多谢精英王子,我又重新阅读了一下nginx wiki里关于error_page的说明。里面确是指出404的context是uri,我重新给default配置了root,然后指明了其404的相对路径。但出现问题是访问某未绑定域名(比如cc.com),返回的是nginx自带的404页面,访问cc.com/aaa.html返回的是自定义的404页面。额外指定index到404.html才完全生效。另外,用location 将/定义为internal限制也可以返回404.

相关文章: