【问题标题】:maintenance mode on root avoid addon domainsroot 上的维护模式避免插件域
【发布时间】:2011-02-18 17:32:45
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    问题 1

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

    解决方案 1

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

    RewriteEngine On
    

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

    解决方案 2

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


    问题 2

    使用date variables 根据当前日期为您的规则添加条件。例如

    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 format 中日期的前缀)。如果需要粒度,可以构造更长的字符串,包括分钟和秒。

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

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

    【讨论】:

    • 您好,感谢您提供的信息...我还想了解更多有关解决方案二的信息...?你也可以在我的情况下至少举一个.htaccess中的时间条件的例子吗?如果可能的话
    • 我的意思是 2011-02-18T(09|1.|20) # 9-21 今天在这里我不明白 (09|1.|20) 到底是什么?在描述中。我知道是时候了,但是是吗?上午 9 点 21 分?下午等 1. ? 20 是分还是秒?
    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    相关资源
    最近更新 更多