Сроки обслуживания
Можно ли сделать режим обслуживания с помощью метода.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 ответа
Можно ли сделать режим обслуживания с помощью метода.htaccess по времени?
Да, если обслуживание является установленным временем.
Например, воскресенье с 3 до 14 часов (по времени сервера)
RewriteCond %{TIME_WDAY} =6
RewriteCond %{TIME_HOUR} >15
RewriteCond %{TIME_HOUR} <16
RewriteRule .* /maintenance.html [R=302,L]
Узнайте больше о mod_rewrite
переменные времени
Да, это возможно с помощью %{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]
Полный список переменных, которые можно использовать, некоторые из которых зависят от времени, пожалуйста, проверьте в документации.
На данный момент доступны следующие переменные.
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 в адресную строку вашего браузера.