Файл .htaccess для блокировки всех IP-адресов, кроме 4, и всегда разрешать запросы в / api / для всех - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь запретить все запросы по

RewriteCond %{HTTP:X-FORWARDED-FOR} !=67.x.x.x
RewriteCond %{REQUEST_URI} !^api 
RewriteRule ^(.*)$ - [R=403,L]

ErrorDocument 403 "<html><hea....

Таким образом, IP 67 должен быть разрешен для всех REQ, но каталог / api / должен быть доступен для всех.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Чтобы запретить доступ ко всем кроме 4 определенных IP-адресов, вы можете использовать отрицательный шаблон RewriteCond и регулярное выражение для сопоставления с разрешенными IP-адресами, например:

RewriteCond %{REMOTE_ADDR} !(ip1|ip2|ip3|ip4)

Если вы не хотите, чтобы ваш /api uri был перенаправлен на 403, вы можете исключить его из шаблона перезаписи, чтобы uri был доступен как для разрешенных, так и для запрещенных IP-адресов.

Полный код:

RewriteEngine on


RewriteCond %{REMOTE_ADDR} !(ip1|ip2|ip3|ip4)
RewriteRule !api - [R=403,L]
0 голосов
/ 08 мая 2018

Вы можете применить некоторые из этих директив. Кроме того, я думаю, что ваш API-это каталог

order deny,allow
deny from all 
allow from 222.333.444, 67.8.9.9 # ALLOWED IPS MUST BE SEPARATED BY COMMAS

<Directory /api>
# All access controls and authentication are disabled
# in this directory
Satisfy Any
Allow from all
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...