Назад | Перейти на главную страницу

Apache: разрешить только определенные HTTP-запросы, все остальное отклонить

У нас есть сервер Apache на машине Windows Server 2008, который используется для определенного защищенного трафика для наших клиентов, например, шлюз.

Теперь я хочу разрешить трафик только для определенного диапазона защищенных URL-адресов, определяемых подстановочным знаком uri: **** secure.mysite.com ****, и отклонить все остальные запросы http или https к Apache

Как это настроить в файле Apache httpd conf?

Спасибо

Ты можешь позволять доступ через переменную среды, которая устанавливается только через шаблоны URI запроса, с которыми вы хотите сопоставить SetEnvIf.

На вашем хосте или виртуальном хосте настройте следующее с URI, которые вы хотите разрешить:

SetEnvIf Request_URI ^/requests/you/want/.* allow 
SetEnvIf Request_URI ^/requests/you/want/.+?\.php$ allow 

Если вы обслуживаете запросы от Apache:

<Location /> 
 Order Deny,Allow
 Deny from all
 Allow from env=allow
</Location> 

Или при проксировании через mod_proxy, вы, вероятно, захотите объединить совпадение URI с некоторыми ограничениями IP, чтобы у вас не было открытого прокси.

SetEnvIf Remote_Addr ^10\..+ deny

<Proxy *>
 Order Allow,Deny
 Deny from env=deny
 Allow from env=allow
</Proxy>

В этом случае, если IP не в 10.0.0.0/8 диапазон отрицать, Order быть важным