.htaccess доступен только через ip

Я хотел бы заблокировать путь с моего сайта, используя конфигурацию .htaccess. Идея заключается в том, что только определенный набор IP-адресов может получить доступ к этому конкретному пути из URL-адреса.

Примечание. Это путь, а не страница или каталог. Мы пытаемся оградить веб-сервис, так что будут только почтовые звонки на URL.

Я хотел бы, чтобы url example.com/rest был заблокирован, и все, что было за этим URL, основано на IP. Поэтому example.com/rest/test_service и example.com/rest/test_service/read должны быть заблокированы.

Все остальные пути из приложения должны оставаться функциональными.

То, что я пробовал, но, похоже, не работает. Не доступна ни одна страница.

 SetEnvIf Request_URI "/rest$" rest_uri <RequireAll> Require env rest_uri <RequireAny> Require ip XXX.XXX.XXX.XXX </RequireAny> </RequireAll> 

Я пробовал разные вещи, но никто из них, похоже, не работает. Любая помощь приветствуется.

Вы можете использовать такие директивы, чтобы разрешить диапазон IP для определенного URL:

 # set env variable if URL is /rest or /rest/ SetEnvIf Request_URI "/rest(/.*)?$" rest_uri Order deny,allow # first deny all Deny from all # then allow if env var is not set Allow from env=!rest_uri # also allow your IP range Allow from 10.1.0.0/16 

Вы можете использовать mod rewrite, чтобы разрешить пространственный ip-адрес

 RewriteEngine on RewriteCond %{REMOTE_ADDR} !YourIP$ RewriteRule ^/?rest - [F] 

Это приведет к возврату 403 запрещенной ошибки для всех других IP-адресов при доступе / rest или / rest / foobar.