Mit einer .htaccess Datei kann man unter anderem schnell einen Zugriffsschutz für ein Verzeichnis auf einem Webserver einrichten. Wie das geht zeige ich euch hier.

Für den Passwortschutz werden 2 Dateien benötigt.

  1. .htaccess (wird im zu schützenden Verzeichnis abgelegt)
  2. .htpasswd (wird außerhalb des Document Roots abgelegt, damit man über das Internet nicht darauf zugreifen kann)

Die vollständige Dokumentation findet ihr hier:

https://httpd.apache.org/docs/current/howto/htaccess.html

Die Apache Foundation empfiehlt übrigens keine .htaccess Dateien zu benutzen, da es das Laden der Webseite verlangsamt.

.htaccess Datei erstellen

Die Datei hat folgenden Inhalt:

AuthType Basic
AuthName "Zugriff verweigert - Bitte Benutzername und Passwort eingeben"
AuthUserFile /var/www/.htpasswd
Require valid-user
.htpasswd Datei erstellen

Wenn ihr keinen Zugriff auf eine Linux Shell habt könnt ihr im Netz nach einem der unzähligen htpasswort Generatoren suchen.

Ansonsten einfach folgenden Befehl eingeben

htpasswd -c /var/www/.htpasswd benutzer1

Der Switch -c bewirkt, dass die Datei neu erstellt wird. Lasst es weg wenn ihr weitere Benutzer anlegen wollt.

Problembehebung

Wenn die Passwortabfrage gar nicht erscheint kann es an der Webserver Konfiguration liegen. Für Apache schaut euch die AllowOverride Direktive an. Damit steuert man was in der .htaccess drin stehen darf und verarbeitet wird. Für die Authentifizierung reicht AllowOverride AuthConfig.
https://httpd.apache.org/docs/2.4/de/mod/core.html#allowoverride

Wenn ihr immer wieder nach dem Benutzernamen und dem Passwort gefragt werdet, findet der Webserver die .htpasswd Datei nicht oder kann sie nicht lesen.