定时维护模式

时间:2014-06-12 15:58:56

标签: php .htaccess rewrite maintenance maintenance-mode

是否可以通过.htaccess方法定时维护模式?

例如,在某个特定时间禁用维护模式?

例如我使用它(当然是我的IP):

<IfModule mod_rewrite.c>
RewriteCond %{REMOTE_ADDR} !^00\.0\.000\.00
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.html [R=302,L]
</IfModule>

2 个答案:

答案 0 :(得分:0)

  

是否可以通过.htaccess方法定时维护模式?

是,如果维护是设定时间

例如,周日下午3-4点(服务器时间)

RewriteCond %{TIME_WDAY} =6
RewriteCond %{TIME_HOUR} >15
RewriteCond %{TIME_HOUR} <16
RewriteRule .* /maintenance.html [R=302,L]

详细了解mod_rewrite time variables

答案 1 :(得分:0)

是的,可以使用%{TIME_HOUR}%{TIME_MIN}来实现。要在7到7:15之间显示维护页面,您可以执行以下操作:

RewriteCond %{TIME_HOUR}%{TIME_MIN} >1900
RewriteCond %{TIME_HOUR}%{TIME_MIN} <1915
RewriteCond %{REMOTE_ADDR} !^00\.0\.000\.00
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.html [R=302,L]

有关可以使用的变量的完整列表,其中一些是基于时间的,请查看documentation

截至目前,可以使用以下变量。

TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME

据我所知,没有关于这些变量可以包含哪些内容的文档,但您可以通过执行以下操作来试验它们:

RewriteRule ^foo$ /bar?time_year=%{TIME_YEAR} [R,L]

然后在浏览器的地址栏中输入http://example.com/foo