Электростальский форум
Hi-Tech => Компьютеры, периферия, мультимедиа и ПО => Тема начата: Faust от 18.02.09, 11:19:26
-
Необходимо с определенных ИП адресов сделать переадресацию на другой сайт.
Например, при обращении к сайту пользователя с ИП адресом 192.168.0.10 надо открыть другую папку на сервере, содержащую другой сайт.
Нашел только редирект для ИП на другой сайт:
Показ разных страниц, в зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html
Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html
В моем случае должно выглядеть так:
SetEnvIf REMOTE_ADDR 192.168.0.10 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ www.yandex.ru
Только служба апача выдает внутреннюю ошибку приложения и сворачивается =/
Что не так с синтаксисом? Пишу в раздел редиректа...
А лучше бы редирект не на сайт, а на папку htdocs1 к примеру..
-
так а че в логах пишется?
mod_rewrite включен?
-
так а че в логах пишется?
mod_rewrite включен?
LoadModule rewrite_module modules/mod_rewrite.so
В логах винды пишет, что произошла внутрення ошибка приложения.
Если запускать через батник, то пишет, наберите NET HELP что-то там, в общем, в итоге говорит, что обратится к разработчику приложения...
Волшебным образом пнул, запустился таки сервис, но не редиректит.....=/ (ctrl+s забыл ткнуть :al:)
-
SetEnvIf REMOTE_ADDR 192.168.0.* REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /ip1.htm
ip1.htm лежит в корне, в папке htdocs
Обращаюсь с ИП адресов 192,168,0,35 и 192,168,0,100. Апач на 192,168,0,35. Все равно открывает index.htm
ппц..может какую мелочь упускаю..
-
SetEnvIf REMOTE_ADDR 192.168.0.* REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /ip1.htm
ip1.htm лежит в корне, в папке htdocs
Обращаюсь с ИП адресов 192,168,0,35 и 192,168,0,100. Апач на 192,168,0,35. Все равно открывает index.htm
ппц..может какую мелочь упускаю..
Как я понимаю, в примере, который вы нашли, смысл такой: если IP адрес совпадает с шаблоном, то установить значение переменной REDIR="redir", затем если переменная REDIR равна "redir", то переделать URL. Какой-то странный пример. RewriteCond может сам на основе IP работать, вместо %{REDIR} надо указывать %{REMOTE_HOST}, зачем делать двойную работу с установкой переменной?
Попробуйте вот это:
RewriteCond %{REMOTE_HOST} 192.168.0.*
RewriteRule ^/$ /ip1.html
Более подробно можете почитать здесь:
http://httpd.apache.org/docs/2.2/rewrite/rewrite_intro.html (http://httpd.apache.org/docs/2.2/rewrite/rewrite_intro.html)
В вашем примере конкретно ошибка вот здесь:
вместо
RewriteCond %{REDIR} redirнадо
RewriteCond %{ENV:REDIR} redir
Из-за чего ещё может не работать:
а) не включён модуль переписывания (LoadModule есть, а директивы RewriteEngine On нет);
б) если всё-таки решите сделать через SetEnvIf, то проверьте, загружен ли модуль `mod_setenvif.so'
б) если вы используете виртуальный хостинг, то настройки надо вписывать в тот виртуальный хост, в котором делается отсеивание по IP адресу при обращении.
P.S. Я рассказал для Apache 2.2 под Linux, в принципе для Windows то же самое всё, не должно быть отличий.