2015-06-30 2 views
6

In Apache HTTP Server 2.4: Wie kann der Zugriff auf Verzeichnislisten auf einige IP-Bereiche beschränkt werden? Dateien sollten weiterhin öffentlich über URLs heruntergeladen werden können, aber Verzeichnislisten sollten eingeschränkt werden.Apache HTTP Server: Wie kann der Zugriff auf Verzeichnislisten auf einige IP-Bereiche beschränkt werden?

+0

ist es eine Option, um den Index zu blockieren Seiten für eine Reihe von IPs? – VDP

+0

Apache 2.2 oder 2.4? –

Antwort

9

Dies ist mit <If> Expression möglich.

Dies ist dein vhost/conf:

<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> 

getestet es mit Ubuntu Server und Windows mit Apache 2.4 - leider wird dies nicht mit älteren Apache-Versionen funktionieren.


Für IP-Bereiche ist es möglich, eine andere Art und Weise zu verwenden, um die IP zu überprüfen:

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

oder schneller Weg ist, mit -R:

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

Danke für dieses Kopfgeld und für diesen Tipp mit '-R' - die Docs sagen, es ist auch effizienter. – CodeBrauer

Verwandte Themen