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

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

Как правильно сделать редирект 301 для определенных IP адресов, а именно есть:

RewriteCond %{HTTP_HOST} ^site\.com

RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.site\.com

RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

а нужно сделать так, чтобы редирект работал для определенных ip адресов, пример 192.168.1.0/21

Буду весьма признателен за помощь!

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

Например так:


RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.
RewriteCond %{HTTP_HOST} ^site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.
RewriteCond %{HTTP_HOST} ^www.site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

Подряд стоящие несколько правил RewriteCond, по умолчанию работают как AND условие

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

Не идет так...

Pinpon
На сайте с 26.11.2006
Offline
52
#3
Балгынбаев Дастан:
Не идет так...

Не идет, всмысле непроисходит редирект, или ошибка возникает?

А так:


RewriteCond %{HTTP:X-FORWARDED-FOR} ^192\.168\.1\.
RewriteCond %{HTTP_HOST} ^site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

RewriteCond %{HTTP:X-FORWARDED-FOR} ^192\.168\.1\.
RewriteCond %{HTTP_HOST} ^www.site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]
Балгынбаев Дастан
На сайте с 20.11.2009
Offline
60
#4
Pinpon:
Не идет, всмысле непроисходит редирект, или ошибка возникает?

А так:


RewriteCond %{HTTP:X-FORWARDED-FOR} ^192\.168\.1\.
RewriteCond %{HTTP_HOST} ^site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

RewriteCond %{HTTP:X-FORWARDED-FOR} ^192\.168\.1\.
RewriteCond %{HTTP_HOST} ^www.site\.com
RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

Ошибка возникает, вроде нашел способ

RewriteCond %{REMOTE_ADDR} !=192.168.1.2

RewriteRule ^(.*)$ http://www.domen.ru/$1 [R=301,L]

Но вот теперь проблема как сделать для 192.168.1.2/19

siv1987
На сайте с 02.04.2009
Offline
427
#5

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

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

RewriteRule ^(.*)$ http://site.org/$1 [R=301,L]

естественно редиректит все 192.168.1.0 - 192.168.1.255

для нужно диапазона пишите регулярное выражение

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

Дело в том, что когда делаю:

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 обратные слэши может?

siv1987
На сайте с 02.04.2009
Offline
427
#7

кеш браузера почистите. Так редирект есть или нету? То что выдает 404 это другая проблема и собственно отношения тут не имеет

Балгынбаев Дастан
На сайте с 20.11.2009
Offline
60
#8
siv1987:
кеш браузера почистите. Так редирект есть или нету? То что выдает 404 это другая проблема и собственно отношения тут не имеет

почистил, результат такой же 404 ошибка

siv1987
На сайте с 02.04.2009
Offline
427
#9
Балгынбаев Дастан:
результат такой же 404 ошибка
siv1987:
редирект есть или нету?

........................

Если редиректа нету, значит ваш адрес из другой сети, и соответственно условие не срабатывает. localhost, если что, это 127.0.0.1

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

Редиректа нет, адрес тот, на модеме смотрю, вот что не так не могу понять

12

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