Редирект 301 для определенных IP адресов

12
Pinpon
На сайте с 26.11.2006
Offline
52
#11
Балгынбаев Дастан:
Дело в том, что когда делаю:
RewriteCond %{REMOTE_ADDR} !=192.168.1.2
RewriteRule ^(.*)$ http://www.domen.ru/$1 [R=301,L]
все работает как надо, но когда делаю как советуете вы:
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.
RewriteCond %{HTTP_HOST} !^site\.org$
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]
Выдает ошибку 404 обратные слэши может?

В первом варианте у вас негативное условие, не равно 192.168.1.2

RewriteCond %{REMOTE_ADDR} !=192.168.1.2

а во втором, позитивное условие, равно 192.168.1.*

RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.

+ негативное условие для домена

RewriteCond %{HTTP_HOST} !^site\.org$

Соответственно в первом случае если ваш адрес не равен 192.168.1.2, то происходит редирект.

А во втором случае редирект произойдет если ваш адрес в диапазоне 192.168.1.* и сайт не равен site.org

Балгынбаев Дастан:
Редиректа нет, адрес тот, на модеме смотрю, вот что не так не могу понять

Можно поинтересоваться на каком модеме вы его смотрите? Адреса диапазона 192.168.*.*. это локальные адреса и в интернете их быть не может, соответственно если вы про интернет модем говорите то адреса 192.168.*.* там быть не могут, вы наверное смотрите не интернет адрес, а локальный адрес

---------- Добавлено 27.11.2013 в 20:47 ----------

Интернет адрес можно посмотреть например тут http://internet.yandex.ru/

Балгынбаев Дастан
На сайте с 20.11.2009
Offline
60
#12

Смотрю интернет адрес, т.к. модем настроен роутером ADSL, где прекрасно можно увидеть айпишник и т.д.

Реферала научу зарабатывать в вебтрансфер (https://webtransfer-finance.com/?id_partner=95903484) бесплатно.
siv1987
На сайте с 02.04.2009
Offline
427
#13

Балгынбаев Дастан, http://2ip.ru/

Pinpon
На сайте с 26.11.2006
Offline
52
#14

Так, давайте разберемся, а то какаято путаница получаеться:

1. Сайт находиться в интернете, на какомто хостинг провайдере или дома на локальной машине в локальной сети?

2. Здесь http://internet.yandex.ru/ показывает такойже адрес как и интернет адрес на роутере?

3. Условие для диапазона IP адресов должно быть позитивным или негативным?

Балгынбаев Дастан
На сайте с 20.11.2009
Offline
60
#15
Pinpon:
Так, давайте разберемся, а то какаято путаница получаеться:
1. Сайт находиться в интернете, на какомто хостинг провайдере или дома на локальной машине в локальной сети?
2. Здесь http://internet.yandex.ru/ показывает такойже адрес как и интернет адрес на роутере?
3. Условие для диапазона IP адресов должно быть позитивным или негативным?

1. Сайт в Интернет, хостинг премиум ihc точка ру

2. В сервисах проверки айпи, показывает такой же айпишник

3. Условие должно быть таким, чтобы люди из определенного пула адресов видели сайт по одному домену, а другие по другому.

Pinpon
На сайте с 26.11.2006
Offline
52
#16
Балгынбаев Дастан:

3. Условие должно быть таким, чтобы люди из определенного пула адресов видели сайт по одному домену, а другие по другому.

А сайт сейчас может открываться с двух разных доменов и полноценно работать на каждом из них? Т.е. созданы конфиги виртуальных хостов, натравленные на одну папку сайта, и сам движок сайта расчитан на два разных домена?

Балгынбаев Дастан
На сайте с 20.11.2009
Offline
60
#17
Pinpon:
А сайт сейчас может открываться с двух разных доменов и полноценно работать на каждом из них? Т.е. созданы конфиги виртуальных хостов, натравленные на одну папку сайта, и сам движок сайта расчитан на два разных домена?

движок DLE второй домен добавлен просто алиасом

Pinpon
На сайте с 26.11.2006
Offline
52
#18

Наколько я понял ТЗ такое:

Т.е. допустим 255.255.255.255 это ваш интернет адрес (IP), вас должно пускать на domen1.com и не должно пускать на domen2.com (должно редиректить на domen1.com), а всех других наоборот, должно пускать на domen2.com, и не пускать на domen1.com

Исходя из этого условия, будут работать сдедующие правила:


RewriteCond %{REMOTE_ADDR} ^888\.888\.888\.888$
RewriteCond %{HTTP_HOST} ^(www\.)?domen2\.com
RewriteRule ^(.*)$ http://www.domen1.com/$1 [R=301,L]

RewriteCond %{REMOTE_ADDR} !^888\.888\.888\.888$
RewriteCond %{HTTP_HOST} ^(www\.)?domen1\.com
RewriteRule ^(.*)$ http://www.domen2.com/$1 [R=301,L]

Замените 888.888.888.888 на свой интернет адрес (тот что показывает на http://internet.yandex.ru/), domen1.com на тот домен на который вас должно пускать, а domen2.com замените на домен куда вас пускать не должно, если это заработает, то останеться только вместо конкретного адреса прописать диапазон IP, если незаработает то значит я неправильно понял ТЗ либо вы чтото недоговариваете

p.s.

Незабывайте про кеш браузера, и про то что кеш редиректов не всегда очищаеться при очистки кеша (в Opera это особенно актуально).

Редиректы лучше всего проверять через консоль:

curl -I http://domen1.com
12

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