如何设置Apache RewriteRule的切换?

我有以下的Apacheconfiguration,除了我的IP地址外,它向所有访问者显示503服务不可用错误:

ErrorDocument 503 /503.html RewriteEngine On RewriteCond %{REMOTE_ADDR} !^127.0.0.1$ RewriteCond %{REQUEST_URI} !^/503.html$ RewriteRule .* - [R=503] 

这样我就可以在我的网站上进行维护而不会向用户显示任何错误。 (我正在使用我的实际IP,而不是127.0.0.1 。)

但是,要closures或打开我需要注释/取消所有行的注释,或完全删除它。 在我运行nginx的其他服务器上,我使用了一个带有variables的geo子句(如在这个问题中所见)。 所以我可以改变default01来打开它。

有没有办法在Apache中做类似的事情?

如果您不想重新启动Apache来更改设置(这是对configuration进行更改的要求),并且您没有使用.htaccess文件(实际上您不想这么做)

您可以设置我们的工作(通常通过我们的负载均衡器),例如通过添加testing来进行维护状态的testing

 RewriteCond ^/maintenance.txt -f 

通过在其他活网站上创buildmaintenance.txt文件(例如touch maintenance.txt )来启动维护窗口。

看看Debian / Ubuntu如何configurationApache。 他们使用/etc/apache2/{mod|sites|conf}-available文件中存储的站点,模块和一般configuration的configuration摘录 – 可用/etc/apache2/{mod|sites|conf}-available链接到/etc/apache2/{mod|sites|conf}-enabled它来激活它。 这些*-enabled目录Include在主configuration文件中。 另外,他们有一个a2Xena2Xdis命令,只是创build符号链接或删除它,以便于维护。

HBruijn的答案是最好的,但这是另一个我刚发现的作品:

 RewriteCond 1 0 

然后, 0可以改为1来打开它。