Also, man muss nur folgendes tun:
In dem Verzeichnis, welches passwortgeschützt sein soll, erstellt man eine Datei namens .htaccess. Der Punkt vor dem Namen ist hierbei wichtig, da er bedeutet, dass die Datei versteckt sein soll. Wenn man die Datei nun erstellt hat, füllt man sie mit Inhalt. Folgendes Beispiel verdeutlicht, was die Datei enthalten muss:
AuthType Basic
AuthName "Dieses ist ein passwortgeschützter Bereich"
AuthUserFile /webroot/persoenlich/.htpasswd
require user thomas
Die erste Zeile ist verpflichtend. In der zweiten Zeilen wird ein Text eingegeben, der in dem Fenster, welches das Passwort später abfragt, angezeigt wird. In der dritten Zeile wird der Pfad zu der Passwort-Datei (.htpasswd) angegeben. Das Verzeichniss muss nach den eigenen Bedürfnissen angepasst werden. So muss statt "webroot" das eigene Wurzel-Verzeichnis der Internet-Präsenz angegeben werden. Das Verzeichnis "persoenlich" ist das zu schützende Verzeichnis, in dem die .htaccess-Datei abgelegt ist. In diesem Verzeichnis wird dann später die Passwort-Datei erzeugt (über deren Aufbau sag ich unten noch mehr). Die vierte Zeile enthält den Benutzernamen (hier: thomas), unter dem man sich später einloggen kann. Das zugehörige Passwort steht später in der .htpasswd-Datei. Wenn man mehrere Benutzer zulassen will, kann man mehrere Zeilen der Art untereinander einfügen.
.htpasswd erzeugen
Wenn jetzt die .htaccess-Datei in dem Verzeichniss erstellt wurde, welches geschützt werden soll, müssen jetzt den definierten Usern Passwörter zugeteilt werden. Dieses macht man in der .htpasswd-Datei, die in demselben Verzeichnis erstellt wird in dem sich die .htaccess-Datei befindet bzw. welches man oben in der .htaccess-Datei definiert hat (Zeile 3).
Der Aufbau dieser Datei ist sehr einfach. In jede Zeile kommt der jeweilige Username und dann getrennt von einem Doppelpunkt kommt das verschlüsselte Passwort. Hier ein Beispiel:
thomas:n8F28qRYJJ4Q6
Hier ist der Username "thomas" und hinter dem Doppelpunkt das verschlüsselte Passwort. Das Passwort in diesem Fall lautete im Klartext "test". Doch wie erzeugt man dieses verschlüsselte Passwort? Dafür stellt die Skriptsprache PHP eine Funktion namens crypt bereit. Ich habe ein kleines Skript zusammengestellt, welches die Verschlüsselung übernimmt:
<?
if(isset($passwort)) {
echo("Das verschlüsselte Passwort lautet: ".crypt($passwort));
}
?>
Sie können das entweder selbst in PHP umsetzen oder nutzen folgendes fertiges Skript:
Skript zum Verschlüsseln von Passwörtern für die .htaccess-Datei
Für jeden User den Sie mittels require user in der .htaccess-Datei definiert haben, müssen Sie jetzt ein passendes Passwort erzeugen und dieses in die .htpasswd-Datei schreiben, wie es im obigen Beispiel vorgemacht wurde.
Wenn jetzt ein User auf das Verzeichnis zugreifen will, in der die .htacces-Datei abgelegt wurde, erscheint eine Aufforderung zur Passworteingabe.
Bemerkung:
Anstatt die .htpasswd-Datei in demselben Verzeichnis zu erzeugen, in dem auch die .htaccess-Datei liegt, kann man diese auch woanders erstellen und dementsprechend den Pfad in der .htaccess-Datei anpassen. Eine Möglichkeit wäre zum Beispiel die Passwort-Datei unterhalb des "Web-Roots" in einem Verzeichnis anzulegen.
Passwort erzeugen
Geben Sie in das Eingabefeld das gewünschte Passwort ein, und drücken Sie
"verschlüsseln".
Danach erscheint das verschlüsselte Passwort,
welches Sie in die .htaccess-Datei eintragen können.
verzeichnis_von_htpasswd/htpasswd -c .htpasswd Benutzername
htpasswd ist der Dateiname, wie die Passwortdatei heissen soll.
Als Benutzername kann ein beliebiger Name eingegeben werden.
Mit folgendem Aufruf kann der Passwortdatei noch ein weiterer Benutzer zugefügt, oder
das Passwort eines schon enthaltenen Benutzers geändert werden:
verzeichnis_von_htpasswd/htpasswd .htpasswd Benutzername
Um den Passwortschutz zu aktivieren, muss die httpd.conf des Apache Servers geändert werden.
Die Stelle, wo die httpd.conf geändert werden muss, sieht so aus:
#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options",
"FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None
man kann den Eintrag von None auf All oder AuthConfig ändern.