我了解了如何让NGINX返回503
客户错误页面,但我不知道如何执行以下操作:
样本配置文件:
location / {
root www;
index index.php;
try_files /503.html =503;
}
error_page 503 /503.html;
location = /503.html {
root www;
}
您可以看到,根据上面的代码,如果在我的根目录中找到了名为503.html
的页面,该站点将把该页面返回给用户。
但是看来,尽管上面的代码在有人输入我的网站来访问我的网站时正常工作,
它不会捕获请求,例如:
使用我的代码,用户仍然可以看到个人资料页面或index.php
以外的任何其他页面。
问题:
如何在我的根文件夹中存在503.html
时将请求捕获到站点中的所有页面并将其转发到503.html
?
我了解了如何让NGINX返回503个客户错误页面,但是我无法确定如何执行以下操作:示例配置文件:location / {root www;索引index.php; ...
以下配置适用于接近最新的稳定Nginx 1.2.4
。我找不到一种不用if
即可启用维护页面的方法,但是显然根据IfIsEvil没关系if
。
已更新
其他答案都是正确的,但只是要补充一点,如果您使用内部代理,还需要在其中一台代理服务器上添加proxy_intercept_errors on;
。
几年后,这是我目前用于完全自定义错误消息的内容。