我有一个包含Rewrite的包含文件,用于检查信号量文件是否存在,如果没有显示维护页面。
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f
RewriteCond %{REQUEST_URI} !/maintenance.html
RewriteRule ^/ http://mydomain/maintenance.html [L]
通常它可以工作,但我现在有一个VirtualHost,有几个应用程序在不同的上下文根处回答:
如果我更改每个应用程序的规则正在运行..但由于应用程序的数量已经很多,并且可能会增加,我需要为所有人创建一个规则,类似这样,其中xxx可以是任何:
<Location /xxx>
RewriteCond %{DOCUMENT_ROOT}/xxx/maintenance.enable -f
RewriteCond %{REQUEST_URI} !/maintenance.html
RewriteRule ^/ http://mydomain/maintenance.html [L]
</Location>
PS。我正在使用最新的apache 2.4版本
答案 0 :(得分:0)
我找到了一个类似于我最初使用像这样的宏的解决方案:
<Macro check_maintenance $context>
RewriteCond %{DOCUMENT_ROOT}/$context/maintenance.enable -f
RewriteCond %{REQUEST_URI} !/maintenance.html
RewriteRule ^/ http://mydomain/maintenance.html [L]
</Macro>
在位置指令外添加的vhost配置中:
use check_maintenance app1
use check_maintenance app2