如何排除部分页面创建nginx的维护页面503
需要排除部分URL,将剩下的页面返回503,自定义的一个显示正在维护的页面。nginx的部分配置如下:
location / {
# 跨域设置
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,Accept,Origin,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
# 维护页面
set $flag 0;
if ($request_uri !~ "(/houtai/).*$"){
set $flag "${flag}1";
}
if ($request_uri !~ "/503/503.html$" ){
set $flag "${flag}2";
}
if ($request_uri !~ "(/503/css/.*)$" ){
set $flag "${flag}3";
}
if ($request_uri !~ "(/503/images/.*)$" ){
set $flag "${flag}4";
}
if (-f $document_root /503/503.html) {
set $flag "${flag}5";
}
if ($request_uri !~ "/zt"){
set $flag "${flag}6";
}
if ($flag = "0123456") {
return 503;
}
}
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /503/503.html break;
}
503这个目录是放在网站的跟目录下,自定义的503.html这个维护页面包含的图片images样式css也都在里面。
实际的效果是希望,当访问的URL不含houtai,不含503,不含zt的时候,则显示维护页面。但是,实际情况是发现有些页面的URL不含上面3个目录依然是正常显示的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
原来是放匹配的地方放错了,不应该放到location / 里面: