Configuration NGINX重定向而不重写不包括IP和目录的url

Configuration NGINX重定向而不重写不包括IP和目录的url,configuration,url-rewriting,nginx,Configuration,Url Rewriting,Nginx,我们有一个网页,我们把它放在我们的网站上,当我们把它下来进行维护或更新。基本伪代码逻辑如下所示: if IP != 72.56.43.212 and location !~ /down then display down/ url保持完整是很重要的。比如说, Address Bar: http://www.example.com/abcd.html Page Shown: http://www.example.com/down 我对NGINX配置还是相当陌生的。非常感谢您的帮助。我自

我们有一个网页,我们把它放在我们的网站上,当我们把它下来进行维护或更新。基本伪代码逻辑如下所示:

if IP != 72.56.43.212 and location !~ /down then
   display down/
url保持完整是很重要的。比如说,

Address Bar: http://www.example.com/abcd.html
Page Shown:  http://www.example.com/down

我对NGINX配置还是相当陌生的。非常感谢您的帮助。

我自己以前从未尝试过,但您可以使用nginx访问规则来完成此操作

if ($remote_addr != "1.1.1.1") {
  rewrite . /down last;
}
error_page  403  http://example.com/down.html;
location / {
    allow 72.56.43.212;
    deny all;
}

所以我只是想知道,你为什么要检查位置!=下来?为什么不直接使用IP?我需要排除掉它,这样它就不会进入重定向循环,重写它要重写的url。这解决了其中一个问题。有3个问题需要同时解决。使用此解决方案,我将得到:……重定向到。。。重定向到。。。重定向到。。。重定向到。。。以此类推……这是内部重定向,因此您将获得/down的内容。并且地址行不会从/abcd.html更改。
location /down {
   #empty block
}
location / {
    if ($remote_addr != 72.56.43.212) {
       rewrite ^ /down/index.php last;
    }
}