如果在nginx中发现错误(例如404,403..etc),我试图显示自定义错误页面。使用以下配置访问<div class="container">
<a class="circle" href="http://www.url1.html">
<span class="image" style="background-image: url(http://lorempixel.com/400/300/)"></span>
<div class="ccont" style="font-weight: bold; text-decoration:none !important;">This is <br>Text1</div>
</a>
<a class="circle" href="http://www.url2.html">
<span class="image" style="background-image:url(https://lorempixel.com/400/200/)"></span>
<div class="ccont" style="font-weight: bold; text-decoration:none !important;">This is <br>Text2</div>
</a>
</div>
时显示的404错误页面。
/test
之后,我尝试添加基于geoip模块的条件检查。如果error_page 403 /403.html;
error_page 404 /404.html;
location = /403.html {
root /usr/share/nginx/html/errors;
allow all;
}
location = /404.html {
root /usr/share/nginx/html/errors;
allow all;
}
# Everything is a 404
location /test {
return 404; #return the code 404
}
等于1,则nginx将直接返回403。
$deny_request
http状态403按预期返回。但是,它不是自定义错误页面,而是返回nginx默认403错误页面。似乎无法将检查放入具有自定义错误页面的服务器块。我错过了什么吗?
答案 0 :(得分:0)
相同的问题使我疯狂了2个星期或更长时间,但顺便说一句,我找到了可行的解决方案,如下所示:
# - error
error_page 502 @offline;
location @offline {
root /var/web/example.org/www;
try_files /502.html 502;
}
我在此答案Nginx won't use custom 502 error page中找到了解决方案,尽管我不明白为什么您的解决方案不起作用,但我认为应该如此。