Passwortschutz für Websites, Verzeichnisse und Dateien mit .htaccess und .htpasswd

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:

Anmeldemaske bei einem htpasswort-Schutz in Google Chrome
Anmeldemaske in Google Chrome

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>

Geschrieben von kulturbanause Team

Benutzerbild

Beiträge bei denen das kulturbanause-Team als Autor angegeben ist, wurden von mehreren Personen in Zusammenarbeit geschrieben. Wir nutzen diesen Blog als öffentliches Archiv und um euch bei alltäglichen Problemen im Zusammenhang mit der Erstellung von Websites zu helfen. Neben diesem Blog bieten wir auch Trainings wie Schulungen, Bücher oder Videos an. Und natürlich unterstützen wir auch gerne im Rahmen unserer Agenturtätigkeit.

Feedback & Ergänzungen – 6 Kommentare

  1. Enno Gelhaus (Websiteinhaber)
    schrieb am 07.06.2022 um 18:53 Uhr:

    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

    Antworten
  2. Jemand
    schrieb am 08.04.2022 um 07:21 Uhr:

    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

    Antworten
    • Jonas Hellwig
      schrieb am 12.04.2022 um 08:52 Uhr:

      Vielen Dank für den Hinweis. Wir haben den Artikel angepasst.

      Antworten
  3. Gerhard Glabischnig
    schrieb am 21.01.2018 um 21:30 Uhr:

    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

    Antworten
  4. Kai
    schrieb am 28.12.2017 um 10:42 Uhr:

    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

    Antworten
    • Jonas Hellwig
      schrieb am 28.12.2017 um 13:06 Uhr:

      Du müsstest den .htaccess-Block einfach verdoppeln können und den Dateinamen entsprechend anpassen.

      Antworten

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

Website-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir realisieren komplette Projekte oder unterstützen punktuell in den Bereichen Design, Development, Strategy und Content.

Übersicht Kompetenzen →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →