问题1
这有点难,但我有3个以上的插件域,他们的文件夹在根目录中.. 例如
www/index.php ROOTSITE.COM
www/example.com/index.php example.COM
www/example2.com/index.php example2.COM
请记住上面的example.com和example2.com是主电源中的文件夹
所以当我把ROOTSITE.COM放到维护模式时......使用
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://rootsite.com/maintenance.html [R=307,L]
它将example.com example1.com分散到root.com/maintanance.html 请告诉我们避免将示例网站设置为非维护模式的方法。 就像我不希望root上的任何.htaccess规则影响插件域(在文件夹中)
问题2
还有其他的事情 当网站进入维护模式时,我需要一些预制的倒计时器(小时:分钟:秒)... 倒计时结束后,它必须转移到rootsite.com ....它还能改变.htaccess吗?我的意思是当倒计时结束时,它必须改变.htaccess的规则以删除维护模式的规则。
答案 0 :(得分:1)
.htaccess
适用于所有物理子目录,无论虚拟主机如何。
解决方案1 :
创建包含以下内容的www/example.com/.htaccess
RewriteEngine On
这将覆盖更高级目录中的任何重写规则。
解决方案2 :
请勿在{{1}}中添加维护重写规则。而是将它们直接放在根站点配置文件的.htaccess
部分中。
使用date variables根据当前日期为您的规则设置条件。 E.g。
<VirtualHost>
这构造了RewriteCond %{TIME_YEAR}-%{TIME_MON}-%{TIME_DAY}T%{TIME_HOUR} \
2011-02-18T(09|1.|20) # 9 am to 9 pm today
变量的当前日期和小时的字符串,例如TIME_*
(这是ISO format中日期的前缀)。如果需要粒度,可以构造更长的字符串,包括分钟和秒。
正则表达式匹配数字范围9到20,因此它将匹配从09:00:00到20:59:59的时间,即上午9点到晚上9点。
在其他两个2011-02-18T15
指令旁边添加此条件,该规则仅在特定时间范围内有效。