Zugriffsschutz per .htaccess
Mit der .htaccess lassen sich nicht nur Redirects, sondern auch ein Zugriffsschutz einrichten. Hier soll es um Grundlagen gehen aber auch um ein paar Spezialfälle, die im Alltag auch einmal vorkommen können.
Grundlagen
Prinzipiell benötigt man für einen .htaccess-Zugriffsschutz 2 Dateien. Die .htaccess, in der der eigentliche Zugriff gesteuert wird, und die .htpasswd, in der User und Passwörter gespeichert werden. Die .htpasswd kann auch anders benannt werden aber dieser Name ist gängiger Standard. Das verhindert auch versehentliches Löschen etc.
In der .htaccess wird der Pfad zur .htpasswd definiert aber Achtung: Das muß der komplette, absolute, Dateiname sein. Wer per FTP/SFTP eingeloggt ist, sieht nur den Teil ab seinem Homedir. Den kompletten Pfad kann man sich z.B. per PHP in einem PHP-File über ein phpinfo(); oder ein
echo $_SERVER['DOCUMENT_ROOT'];
anzeigen lassen.
Einfacher Zugriffsschutz per .htaccess
Wir benötigen eine .htaccess in dem Verzeichnis, dass wir schützen wollen. Da dieser Schutz standardmäßig auf Unterverzeichnisse vererbt wird, kann man den auch eine Ebene höher legen, wenn z.B. im eigentlichen DocRoot schon eine .htaccess liegt und man die nicht anfassen will.
.htaccess
AuthType Basic AuthName "Passwortschutz" AuthUserFile /Pfad/zur/.htpasswd Require valid-user
.htpasswd
test: $apr1$jca82hed$zwpLJfVKRL3JMwRzkjszn/
Hierfür kann man sich z.B. auf https://htpasswdgenerator.de ein Passwort generieren lassen. Jeder User kommt in eine neue Zeile.
Damit haben wir die Basics erledigt
.htaccess Zugriffsschutz für bestimmte Domain
Ein Sonderfall ist der Schutz nur für eine bestimmte Domain. Z.B. bei einer Multidomain-Installation, um eine Domain noch zu verstecken. Hier im Beispiel ist es eine Subdomain "subdomain.domain.de"
SetEnvIf Host subdomain.domain.de passreq AuthType Basic AuthName "Passwortschutz" AuthUserFile /Pfad/zur/.htpasswd Require valid-user Order allow,deny Allow from all Deny from env=passreq Satisfy any
.htaccess Zugriffsschutz für mit Ausnahme bestimmter IPs
Ein Sonderfall ist der Schutz aber mit Ausnahem bestimmter IPs. Diese IPs muß man dann auflisten.
Order deny,allow Deny from all AuthType Basic AuthName "Passwortschutz" AuthUserFile /Pfad/zur/.htpasswd Require valid-user allow from 123.123.123.123 allow from 234.234.234.234 Satisfy Any