Перенаправить все IP-адреса, кроме тех, которые находятся в белом списке - PullRequest
4 голосов
/ 16 февраля 2009

Я хочу защитить некоторые поддомены от общественности. Ограничение должно быть сделано против белого списка IP-адресов. Бесконечный цикл из-за перенаправления не является проблемой, так как это не www-домен.

Я попробовал это http://discussions.apple.com/message.jspa?messageID=2411725,, но не смог заставить его работать.

Однако я попробовал это сначала

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$ [OR]
RewriteCond %{REMOTE_ADDR} !^213\.45\.67\.89$
RewriteRule ^/.* http://www.mydomain.com [R]

.. но не сработало.

Что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 16 февраля 2009

Это именно то, для чего предназначены директивы Apache Allow и Deny. Внутри блока <VirtualHost> для домена, к которому вы хотите ограничить доступ, поместите это:

<Location />
    Order allow,deny
    Allow from all
    Deny from 123.45.67.89
    Deny from 213.45.67.89
</Location>

Однако это приведет к ошибке 403 (запрещено), которая по умолчанию не перенаправляет на ваш домен www. Я думаю, что вы можете сделать это, добавив директиву

ErrorDocument 403 http://www.example.com
3 голосов
/ 16 февраля 2009

Вы должны объединить директивы RewriteCond с AND вместо OR, поскольку вы хотите перенаправить, если оба условия выполняются (для этого IP-адрес не является ни X , ни Y ) , Итак, попробуйте это:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$
RewriteCond %{REMOTE_ADDR} !^213\.45\.67\.89$
RewriteRule ^ http://www.example.com/ [R]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...