如何为 Apache RewriteRule 设置切换?

如何为 Apache RewriteRule 设置切换?

我有以下 Apache 配置,它向除我的 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。)

但是,要关闭或打开此功能,我需要注释/取消注释所有行,或完全删除它。在我运行 nginx 的另一台服务器上,我使用了一个带有变量的 geo 子句(如图所示在这个问题中)。因此我只需default从改为0即可1将其打开。

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

答案1

如果你不想重新启动 Apache 来更改设置(这是更改配置的要求),并且你不使用.htaccess文件(你不想,真的

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

RewriteCond ^/maintenance.txt -f 

touch maintenance.txt维护窗口通过在其他实时网站上创建 Maintenance.txt 文件(例如)来开始。

答案2

了解 Debian/Ubuntu 如何配置 Apache。它们使用存储在文件中的站点、模块和常规配置的配置摘录,这些文件/etc/apache2/{mod|sites|conf}-available被符号链接到其中/etc/apache2/{mod|sites|conf}-enabled以激活它。这些*-enabled目录位于Include主配置文件中。此外,它们还有a2Xen命令a2Xdis,只需创建符号链接或删除它即可,以便于维护。

答案3

HBruijn 的答案是最好的,但我刚刚发现另一个可行的选择:

RewriteCond 1 0

然后0可以将其更改为1打开。

相关内容