我有以下 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
打开。