Как ограничить доступ ка сайту по времени в .htaccess

S
На сайте с 24.10.2014
Offline
63
903

Нашел в инете такую команду

RewriteCond %{HTTP_REFERER} ^http://www\.ДРУГОЙ_ДОМЕН\.(.*) [NC]
RewriteRule .* - [F]

а мне надо, чтобы был не полный запрет, а по расписанию, н-р каждые 20 минут на 5 минут нет доступа с ДРУГОЙ_ДОМЕН.

Возможно ли такое вообще?

webiumpro
На сайте с 20.03.2017
Offline
39
#1

Насколько я знаю в .htaccess такой возможности нет. Данную задачу можно решить с помощью php-скрипта реализующего маршрутизацию. То есть, вы со всех входящих адресов отправляете запрос в скрипт, затем делаете проверку по времени и отправляете в зависимости от выполнения временных условий на нужный адрес.

Копирование лендингов. Разработка на фреймворке сервисов. Создание сайтов (/ru/forum/994418)
S
На сайте с 24.10.2014
Offline
63
#2

Нашел подходящий скрипт

<?php
if( strpos( $_SERVER['HTTP_REFERER'], 'ДРУГОЙ_ДОМЕН.com' ) !== FALSE){
print 'Вы перешли с ДРУГОЙ_ДОМЕН.com - для вас сайт временно закрыт на 5мин!';
exit();
}
?>

Может кто написать, как это сделать по расписанию?

webiumpro
На сайте с 20.03.2017
Offline
39
#3

Ну php скрипт выполняется при запросе, фоново как демон - например, крон - он работать не будет, поэтому четкое расписание сделать так просто не получится. Вы можете попробовать создать массив с временными метками и при каждом запросе сравнивать текущее время с временем в массиве, пробегаясь по нему циклом. Другие варианты в голову не приходят.

Еще можете погуглить, может быть, есть возможность работы со временем в nginx, если конечно вы можете переключиться с апача на него. По этому поводу точных данных у меня, к сожалению, нет.

donc
На сайте с 16.01.2007
Offline
667
#4

по крону запускаете 1 скрипт блокировки, второй разблокировки. Только так вроде

Продвижение сайтов от 25 000 в мес, прозрачно, надежно https://searchengines.guru/ru/forum/818412 , но не быстро, отзывы
J
На сайте с 20.02.2014
Offline
120
jkm
#5

По поводу возможностей mod_rewrite.

Если заглянуть в доку, то в списке доступных переменных можно увидеть TIME_DAY, TIME_HOUR, TIME_MIN, TIME_SEC.

Условием можно проверять минуты в TIME_MIN и каждый час блокировать 14-19, 34-39, 54-59.


RewriteCond %{TIME_MIN} [135][4-9]
S
На сайте с 24.10.2014
Offline
63
#6

jkm, т.е. попробовать такое условие

RewriteCond %{HTTP_REFERER} ^http://www\.ДРУГОЙ_ДОМЕН\.(.*) [NC]
RewriteCond %{TIME_MIN} [135][4-9]
RewriteRule .* - [F]

через каждые 15 минут следующие 5 мин будет недоступ. Правильно?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий