Сроки обслуживания

Можно ли сделать режим обслуживания с помощью метода.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 в адресную строку вашего браузера.

Другие вопросы по тегам