2015-06-30 1 views
6

В Apache HTTP Server 2.4: Как ограничить доступ к спискам каталогов в некоторых диапазонах ip? Файлы должны публично загружаться через URL-адреса, но списки каталогов должны быть ограничены.Apache HTTP Server: Как ограничить доступ к спискам каталогов в некоторых диапазонах ip?

+0

это возможность блокировать индекс страниц для ряда ip? – VDP

+0

Apache 2.2 или 2.4? –

ответ

9

Это возможно с <If> Expression.

Это ваш ВХост/конф:

<VirtualHost *:80> 
     DocumentRoot /var/www/html 

     Options -Indexes  # disable listing 
     <If "%{REMOTE_ADDR} == '10.0.0.5'"> 
      Options +Indexes # enable listing if ip matches 
     </If> 
</VirtualHost> 

<Directory /var/www/html> 
     Require all granted 
</Directory> 

протестировали его с Ubuntu Server и Windows, с Apache 2.4 - к сожалению, это не будет работать с более старыми версиями Apache.


Для IP диапазонов можно использовать другой способ для проверки IP:

<If "%{REMOTE_ADDR} -ipmatch '10.0.0.0/8'"> 

или более быстрый способ это с -R:

<If "-R '192.168.0.0/16' || -R '10.0.248.0/24'"> 
+0

Спасибо за эту щедрость и за этот совет с помощью '-R' - документы говорят, что это также более эффективно. – CodeBrauer