Nginx 如何更改包括自定义错误页在内的状态代码

Nginx 如何更改包括自定义错误页在内的状态代码,nginx,http-status-codes,custom-error-pages,Nginx,Http Status Codes,Custom Error Pages,我正在把状态代码403改为404。我只是不想让用户知道有一个受限制的页面。这在以下配置中可以正常工作: error_page 403 =404 @404; location @404 { return 404; } 现在,我想返回一个自定义404错误页面。但是发送给用户的状态代码应该总是404(当403出现时)。我怎样才能让两者都工作 编辑: 我希望这样的事情能奏效,但没有 location @404 { root /usr/share/nginx/html;

我正在把状态代码403改为404。我只是不想让用户知道有一个受限制的页面。这在以下配置中可以正常工作:

error_page 403 =404 @404;   

location @404 {
    return 404;
}
现在,我想返回一个自定义404错误页面。但是发送给用户的状态代码应该总是404(当403出现时)。我怎样才能让两者都工作

编辑:

我希望这样的事情能奏效,但没有

location @404 {
    root /usr/share/nginx/html;
    internal;
    return 404 "/custom_404.html";
}
试试这个:

error_page 404 /404.html;
location = /404.html {
        root /var/www/error/;
        internal;
}

问题是一个
deny
语句。该语句正在阻止所有内容,包括对任何自定义错误页的访问。解决方案是在自定义错误页面块中添加
允许所有
,以撤销继承的拒绝

error_page 403 404 =404 /custom_404.html;

location = /custom_404.html {
    allow all;
    root /usr/share/nginx/html;
    internal;
}
原始资料来源:


不工作。由于return语句,Nginx忽略了这一点。