.htaccess Dateien sind ein guter und schneller Weg um Zugriffe auf Webseiten einzuschränken oder zu sperren. Diese Einschränkung kann als Passwort Abfrage oder auch als IP Adressen Beschränkung erfolgen. Und man kann die beiden Varianten auch kombinieren sodass von bestimmten IPs keine Passworteingabe erforderlich ist.
Eine einfache Passwortabfrage in einer .htaccess Datei kennen die meisten und sieht in etwa so aus:
(alle User welche in der .htpasswd Datei angelegt wurden haben Zugriff)
AuthName "Zugriffsbeschränkung – Bitte User und Passwort eingeben"
AuthUserFile /var/www/website1/.htpasswd
Require valid-user[/bash]
Eine IP Adressen Beschränkung ist ebenso einfach und sieht so aus:
(Alle IPs in Ausnahme von 192.168.x.x und 10.28.0.200 sind gesperrt)
deny from all
allow from 192.168
allow from 10.28.0.200[/bash]
Wie erreicht man nun dass auf bestimmten IP Bereichen und IPs keine Passwortabfrage nötig ist, sehr wohl aber auf allen nicht angeführten Adressbereiche?
[sam id=’2′ codes=’true‘]
Ganz einfach – man kombiniert die beiden Varianten und erweitert diese um die Funktion „satisfy any“:
(Die IPs 192.168.x.x und 10.28.0.200 benötigen nun kein Passwort um auf die entsprechende Webseite zuzugreifen. Alle anderen IP Bereiche werden weiterhin aufgefordert einen entsprechenden Benutzer + Passwort einzugeben.)
AuthName "Zugriffsbeschränkung – Bitte User und Passwort eingeben"
AuthUserFile /var/www/website1/.htpasswd
Require valid-user
order deny,allow
deny from all
allow from 192.168
allow from 10.28.0.200
satisfy any[/bash]
Hinweis! Damit satisfy auch funktioniert muss für das entsprechende Verzeichnis auch die Direktive „AllowOverride AuthConfig“ aktiviert sein
Danke für den tipp, kann man sicher mal gebrauchen 🙂