root上的维护模式避免了插件域

时间:2011-02-18 17:32:45

标签: php apache .htaccess mod-rewrite addon-domain

问题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的规则以删除维护模式的规则。

1 个答案:

答案 0 :(得分:1)

问题1

.htaccess适用于所有物理子目录,无论虚拟主机如何。

解决方案1 ​​

创建包含以下内容的www/example.com/.htaccess

RewriteEngine On

这将覆盖更高级目录中的任何重写规则。

解决方案2

请勿在{{1​​}}中添加维护重写规则。而是将它们直接放在根站点配置文件的.htaccess部分中。


问题2

使用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指令旁边添加此条件,该规则仅在特定时间范围内有效。