Passwortschutz für Websites, Verzeichnisse und Dateien mit .htaccess und .htpasswd
Mit einem sog. htaccess-Schutz können Bereiche einer Website vor unerwünschtem Zugriff geschützt werden. Die Methode ist einfach umsetzbar und schnell eingerichtet.

Wenn Ihr eure gesamte Website, ein bestimmtes Unterverzeichnis oder auch nur eine einzelne Datei mit einem Passwort schützen möchtet, ist eine gängige Lösung der Schutz mittels .htaccess
– und .htpasswd
. Bei dieser Methode übernimmt der Server den Schutz des entsprechenden Verzeichnisses oder der Datei. In diesem Beitrag erklären wir was ihr tun müsst.
Übersicht über die Konfiguration
Der Passwortschutz setzt sich aus zwei Dateien zusammen:
- Die
.htpasswd
-Datei beinhaltet das Passwort in verschlüsselter Form, sowie den Benutzernamen. - Die
.htaccess
-Datei legt fest, welche Order oder Dateien mit dem Passwort geschützt werden sollen, wo die .htpasswd-Datei sich auf dem Server befindet und welche Meldung dem Anwender in der Passwort-Abfrage angezeigt werden soll.

Einstellungen in der .htpasswd-Datei
Erstellt in einem beliebigen Texteditor eine Datei mit dem Namen .htpasswd
und legt sie in dem Verzeichnis ab, dass geschützt werden soll oder die zu schützende Datei enthält. In der .htpasswd
Datei gebt ihr den Benutzernamen sowie das Passwort in verschlüsselter Form an. Benutzt zur Erzeugung dieses codierten Passworts am besten einen Generator und ein zum jeweiligen Zeitpunkt sicheres Verschlüsselungsverfahren.
Bei einem Benutzer namens kulturbanause
sieht die .htpasswd
-Datei dann beispielsweise so aus:
kulturbanause:$apr1$MvhtEwWO$.Ro5NOQNw9tAtZns8UOl20
Einstellungen in der .htaccess-Datei.
Nun muss in eurer .htaccess
-Datei angegeben werden, dass ein Passwort notwendig ist. Dazu muss auch die .htaccess
-Datei in dem Verzeichnis liegen das geschützt werden soll oder die zu schützende Datei enthält. Legt die Datei also neu an oder editiert die bestehende .htaccess
-Datei.
Anschließend kopiert das folgende Snippet in die .htaccess
-Datei und passt den Pfad (AuthUserFile
) zur .htpasswd
-Datei an. Wie ihr den Pfad herausfindet, könnt ihr hier nachlesen.
AuthName "Kulturbanause Login-Bereich"
AuthType Basic
AuthUserFile /is/htdocs/xy_123/www/yourdomain.com/.htpasswd
require valid-user
Damit ist auch schon das gesamte Verzeichnis, in dem die .htaccess
-Datei liegt, geschützt. Der AuthName
ist optional und wird in der Login-Maske des Browsers angezeigt. Ändert diese Angabe, um den Login zu personalisieren.
Einzelne Dateien schützen
Um nur eine bestimmte Datei innerhalb des Verzeichnisses zu schützen, könnt ihr das folgende Snippet verwenden. Tauscht einfach den Dateinamen kulturbanause-login.php
gegen den Namen der zu schützenden Datei aus.
<Files kulturbanause-login.php>
AuthName "Kulturbanause Login-Bereich"
AuthType Basic
AuthUserFile /is/htdocs/xy_123/www/yourdomain.com/.htpasswd
require valid-user
</Files>
Hat super geklappt. Vielen Dank für den tollen Artikel und Tipp. Gut beschrieben, so dass man es leicht umsetzen kann. Der Authuserfile hat mir etwas zu schaffen gemacht, aber nach etwas Gedankenarbeit hat es dann geklappt.
Ich habe die Dateien richtig gemacht.
Aber bei mir kommt keine Login Abfrage!
Können sie mir helfen?
htaccess:
AuthName „Login-Bereich“
AuthType Basic
AuthUserFile /var/www/html/passwort.htpasswd
require valid-user
Guten Tag,
bitte korrigieren Sie den Artikel. MD5 und SHA1 sind bereits seit langem als unsicher eingestufte Hashverfahren ( https://www.php-einfach.de/experte/php-sicherheit/daten-sicher-speichern/wieso-man-md5sha1-nicht-fuer-das-speichern-von-passwoertern-verwenden-sollte/ ).
Mit freundlichen Grüßen
Vielen Dank für den Hinweis. Wir haben den Artikel angepasst.
Hallo,
habe diese .htaccess Datei im Verzeichnis Intern und eine htpasswd wie unten abgelegt.
Es funktioniert leider nicht. Es kommt zwar die Passwortabfrage aber danach kommt eine Fehlermeldung:
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn’t understand how to supply the credentials required.
AuthType Digest
AuthUserFile /home/strato/www/ws/www.wild-south-chapter.de/.htpasswd
AuthName „Intern“
require valid-user Gerhard
Hey,
wie ist es möglich zwei Dateien im selben verzeichnis zu schützen?
1234.html und 56789.html?
Vielen Dank :)
Liebe Grüße Kai
Du müsstest den .htaccess-Block einfach verdoppeln können und den Dateinamen entsprechend anpassen.