water-journal-225046-unsplash.jpg
water-journal-225046-unsplash.jpg

一、全站跳转

访问网站的任何页面,都跳转到同一个页面(维护页面),可以根据需要修改(适合服务器更新东西或者改版)。

server {
     listen 80;
     server_name mydomain.com;

     # ... 省略掉 N 行代码

     # 所有页面都转跳到维护页
     rewrite ^(.*)$ /pages/maintain.html break;

}

二、按需跳转及适合场景

1)某些重要页面还是能继续访问,比如充值页面等。
2)对于新上线的功能,我们不希望外部访问,但公司内部可以访问,这样就能进行测试,测试完后再对外开放。

server 
    {if ($request_uri !~* ^(/weihu.htm|/pay/index.htm)$) {
        rewrite ^/(.*) /weihu.htm last;
    }

    location ~* / {
        allow   10.20.243.240;
        deny    all;
    }   
}

对于公司内部(10.20.243.240)来说,我们可以访问一切位置。

对于外部人员来说,如果我们访问的uri不是/weihu.htm或者/pay/index.htm,那么就会重写为/weihu.htm。

三、仅502错误进行跳转

每当服务器遇到 502 代码时,就自动转到临时维护页面,显得更人性化。

server {
     listen 80;
     server_name www.example.com;

     # ... 省略掉 N 行代码


     error_page 502 = @tempdown;

     location @tempdown {
         rewrite ^(.*)$ /pages/maintain.html break;
     }
}