问题描述
我花了很多时间来测试不同的解决方案并进行谷歌搜索,但尚未成功。
我将VirtualHost与一个网站用于我的网站(/ var / site1 / www / html /),另一个用于管理维护页面或ErrorDocument(/ var / msite2 / www / html)。
我的最终目标是允许某些IP在维护阶段访问site1。对于拒绝的IP,我希望将它们重定向到响应错误503的维护页面。
IP过滤正在运行。我的问题是关于重定向。
在site1 configuratipon文件的VirtualHost中,如果我将ErrorDocument 503设置为“ Buck luck !!!”,那么该文本将在拒绝的IP浏览器上显示。
当我尝试设置ErrorDocument 503 /var/msite1/www/html/Error503.html时,我得到了默认的503文本消息,外加一条消息,提示系统无法找到Error503.html。
有人对此有一个真实的程序吗?
解决方法
最后,我重新确定了主意,并使用environmnet变量rewriterule找到了解决问题的方法...
# Define Environment Variables
SetEnvif Request_URI ".*" ENVIRONMENT=MAINTENANCE
# Directory for site content
<Directory "/var/site1/www/html">
AllowOverride All
Require all granted
...
</Directory>
<Directory "/var/msite2/www/html">
AllowOverride All
Require all granted
</Directory>
# Maintenance redirection
UseCanonicalName On
RewriteEngine On
RewriteMap exceptions /var/msite2/exceptions.map
RewriteCond %{ENV:ENVIRONMENT} =MAINTENANCE
RewriteCond ${exceptions:%{REMOTE_ADDR}} !=OK
RewriteRule ^/(.*)$ /var/msite2/www/html/$1
现在工作正常。