我正在将状态代码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";
}
答案 0 :(得分:0)
试试这个:
error_page 404 /404.html;
location = /404.html {
root /var/www/error/;
internal;
}
答案 1 :(得分:0)
问题是deny
声明。该声明阻止了所有内容,包括访问任何自定义错误页面。解决方案是在自定义错误页面块中添加allow all
以撤消继承的拒绝。
error_page 403 404 =404 /custom_404.html;
location = /custom_404.html {
allow all;
root /usr/share/nginx/html;
internal;
}
原始来源:
https://www.cyberciti.biz/faq/unix-linux-nginx-custom-error-403-page-configuration/