.htaccess - Passwortschutz für Webseiten (Tutorial)

Mit einer .htaccess Datei und einer .htpasswd Passwort-Datei lassen sich bestimmte Verzeichnisse und die darin enthaltenen Dateien (bei einem Apache-Webserver (Unix)) vor unerlaubtem Zugriff schützen.

Bevor eine geschützte Seite betrachtet werden kann, wird im Browser ein Anmelde-Fenster angezeigt. Nur durch die richtige Beantwortung von Benutzername und Passwort (Kennwort) gelangt man dann zur geschützten Seite.

Passwortschutz - Anzeige: Microsoft Edge

Passwortschutz - Anzeige: Microsoft Edge (Chromium)

Passwortschutz - Anzeige: Internet Explorer

Passwortschutz - Anzeige: Mozilla Firefox

Passwortschutz - Anzeige: Google Chrome / Opera

Beschreibung der beiden Dateiformate

.htaccess - Datei

Die Datei .htaccess ist die Konfigurationsdatei und legt die Art des Zugriffsschutzes sowie den Namen der Passwort-Datei fest, diese kann zum Beispiel so aussehen:

AuthName        "Ein htaccess Demo"
AuthType        Basic
AuthUserFile    /mkt/5275509/htdocs/webseite/intern/user/.htpasswd

<Limit GET POST>
require valid-user
</Limit>

Die Angaben im einzelnen:

AuthName

Kurze Beschreibung des geschützten Bereichs. Diese Beschreibung wird dem Benutzer angezeigt, wenn Benutzername und Passwort (Kennwort) in einem Anmelde-Fenster abgefragt werden.

AuthType

Der am meisten verwendete Authorisierungstyp ist Basic; dieser Typ benutzt als Passwort-Datei eine weitere Textdatei (.htpasswd).

AuthUserFile

Hier muss ein vollständiger Unix Pfadname zur Passwort-Datei: .htpasswd angegeben werden.

AuthUserFile   /mkt/5275509/htdocs/webseite/intern/user/.htpasswd

➤ Den Unix Pfadnamen können Sie ermitteln, wenn Sie in dem Verzeichnis wo die .htpasswd-Datei liegt, folgendes PHP-Script ausführen:

<?php
echo dirname(__FILE__) . "/.htpasswd";
?>

<Limit>

Mit <Limit GET POST> werden alle Dateien in dem Verzeichnis gegen den Zugriff über das "Hypertext Transfer Protocol" (http) abgesichert.

require

Die Angabe require valid-user gibt den Bereich für alle in der Passwort-Datei definierten Benutzer frei.

.htpasswd - Die Passwort-Datei

Die Datei .htpasswd ist die Passwort-Datei, diese kann zum Beispiel so aussehen:

mike:AC6Fn9w4CdLm6
sabrina:11/dWdooTbD

➤ Jede Zeile in der Datei definiert einen Benutzernamen mit Passwort (getrennt durch einen Doppelpunkt). Das Passwort ist mit der Unix-Funktion: crypt() verschlüsselt.

Die .htpasswd-Datei liegt in unserem Beispiel im Verzeichnis user/.
Diese Datei ist durch das aufrufen über http(s):// (z.B: über einem Browser) mit einer weiteren .htaccess-Datei geschützt.


Mit dem folgenden Generator können Sie solche Zeilen erzeugen.

.htaccess - Generator

Tipps

401 ist der Status der mitteilt das die Seite nicht angezeigt werden kann, weil man keine Zugangsdaten angegeben hat. Das trifft zu wenn man z.B. ein Verzeichnis mit einem Passwort geschützt hat. Ruft man das Verzeichnis auf, kommt die Frage nach User/Passwort. Beantwortet man die Frage falsch, erscheint erneut die Frage nach Login und Passwort, dies muss so sein, damit man bei falschen Eingabe die Möglichkeit hat, die Angaben zu korrigieren.

Wenn man allerdings bei der Passwort Abfrage keine Daten angibt, sondern auf "Abbrechen" klickt, sollte die in der htaccess für code 401 angegebene Fehlerseite kommen.

ErrorDocument 401 /ordner/401.html

Siehe: Fehler 404 mit .htaccess abfangen

➤ Windows macht manchmal Probleme, die Dateien als .htaccess, .htpasswd zu benennen (beachten Sie die Kleinschreibung und den Punkt am Anfang), da hilft es wenn die Dateien per FTP-Programm (FileZilla, etc.) auf dem Webserver hochgeladen und dort erst umbenannt werden.

Hier gibt es die Beispiel-Dateien zum herunter laden, damit Sie nicht alles selbst schreiben müssen .

htaccess_passwortschutz.zip


PHP-Webseitenschutz - Mit dem „PHP-Webseitenschutz” (Login-Script) lassen sich mehrere einzelne Seiten schützen. Eine MySQL-Datenbank ist nicht notwendig.