nginx error_page 404 未生效

发布于 2022-08-26 15:21:23 字数 376 浏览 16 评论 0

在禁用未绑定域名和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页面的~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

执手闯天涯 2022-09-02 15:21:23

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

按你的需求,建议改为:

root  /data/www;
error_page 404 /error_page/404.html;
云朵有点甜 2022-09-02 15:21:23

多谢精英王子,我又重新阅读了一下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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文