如何排除部分页面创建nginx的维护页面503

发布于 2022-09-11 18:24:56 字数 1475 浏览 11 评论 0

需要排除部分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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嗫嚅 2022-09-18 18:24:56

原来是放匹配的地方放错了,不应该放到location / 里面:

# 维护页面
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;
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文