Переадресация в htaccess по ip адресам

yuazakharov

Постоялец
Регистрация
22 Янв 2013
Сообщения
300
Реакции
159
День добрый! PrestaShop 1.6.1 Пытаюсь переадресовать вошедших с ip адресов на html страницу:

SetEnvIf REMOTE_ADDR 46.48.144.115 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule .* /ogranichenie.html [R,L]

Rewritemap ip txt:/blacklist.txt
RewriteCond ${ip:%{REMOTE_ADDR}} =b
RewriteRule ^(.*)$ /ogranichenie.html[L]


Что-то не работает.
Содержимое blacklist.txt: 46.48.144.115 b

Хочу чтоб заходили только с 1-го региона.
 
%{ENV:variable}
Код:
RewriteCond %{ENV:REDIR} redir

А директива RewriteMap работает только в контексте server config и virtual host. Так что для её использования нужен доступ к httpd.conf
Для просмотра ссылки Войди или Зарегистрируйся
 
SetEnvIf REMOTE_ADDR 217.118.64.55 REDIR="redir"
RewriteCond %{ENV:REDIR} redir
RewriteRule .* /ogranichenie.html [R,L]


Не работает почему-то
 
Проблема может быть если поставили их не в самое начало, а после других правил. Например после RewriteRule .* index.php [L]
 
Т.е. редирект работает, но происходит бесконечная переадресация. Значит нужно сделать исключение для страницы /ogranichenie.html
Код:
SetEnvIf REMOTE_ADDR 217.118.64.55 REDIR="redir"

RewriteCond %{ENV:REDIR} redir
RewriteCond %{REQUEST_URI} !^/ogranichenie.html
RewriteRule .* /ogranichenie.html [R,L]
 
Т.е. редирект работает, но происходит бесконечная переадресация. Значит нужно сделать исключение для страницы /ogranichenie.html
Код:
SetEnvIf REMOTE_ADDR 217.118.64.55 REDIR="redir"

RewriteCond %{ENV:REDIR} redir
RewriteCond %{REQUEST_URI} !^/ogranichenie.html
RewriteRule .* /ogranichenie.html [R,L]
Теперь работает ) Благодарю!
Такое "217.118.64.55 - 220.120.20.20" будет работать?
 
Директива SetEnvIf поддерживает регулярные выражения, но в данном случае думаю удобнее будет использовать RewriteCond.
Код:
RewriteCond %{REMOTE_ADDR} >217.118.64.54
RewriteCond %{REMOTE_ADDR} <220.120.20.21
RewriteCond %{REQUEST_URI} !^/ogranichenie.html
RewriteRule .* /ogranichenie.html [R,L]
 
Директива SetEnvIf поддерживает регулярные выражения, но в данном случае думаю удобнее будет использовать RewriteCond.
Код:
RewriteCond %{REMOTE_ADDR} >217.118.64.54
RewriteCond %{REMOTE_ADDR} <220.120.20.21
RewriteCond %{REQUEST_URI} !^/ogranichenie.html
RewriteRule .* /ogranichenie.html [R,L]
А если так:217.118.64.55 - 220.120.20.20, 117.118.64.55 - 119.120.20.20, ...
то могу бесконечно такие ставить?
RewriteCond %{REMOTE_ADDR} >217.118.64.54
RewriteCond %{REMOTE_ADDR} <220.120.20.21
 
Назад
Сверху