1

问题 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 是 mains 内的文件夹

因此,当我将 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 请告诉一种方法以避免将示例站点设置为非维护模式.. 就像我不希望根目录上的任何 .htaccess 规则影响插件域(在文件夹中)

问题 2

当站点进入维护模式时,我还需要一些预先制作的倒计时计时器(以小时:分钟:秒为单位)......倒计时结束后,它必须转移到 rootsite.com.... 它也可以更改 .htaccess 吗?我的意思是当倒计时结束时,它必须更改 .htaccess 的规则以删除维护模式的规则。

4

1 回答 1

1

问题 1

.htaccess适用于所有物理子目录,与虚拟主机无关。

解决方案 1

创建www/example.com/.htaccess包含:

RewriteEngine On

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

解决方案 2

不要将维护重写规则放在.htaccess. 相反,将它们直接放在<VirtualHost>根站点配置文件的部分中。


问题 2

使用日期变量根据当前日期为您的规则设置条件。例如

RewriteCond %{TIME_YEAR}-%{TIME_MON}-%{TIME_DAY}T%{TIME_HOUR} \
            2011-02-18T(09|1.|20)   # 9 am to 9 pm today

TIME_*这会从变量中构造一个当前日期和小时的字符串,例如2011-02-18T15(这是ISO 格式的日期前缀)。如果需要粒度,您可以构造更长的字符串,包括分钟和秒。

正则表达式匹配数字范围 9 到 20,因此它将匹配从 09:00:00 到 20:59:59 的时间,即上午 9 点到晚上 9 点。

将此条件添加到您的其他两个RewriteCond指令旁边,该规则将仅在特定时间范围内有效。

于 2011-02-18T18:53:19.153 回答