Eine der Standardaufgaben, die mit Hilfe von .htaccess gelöst werden können, ist die Beschränkung des Zugangs zu einem bestimmten Verzeichnis auf dem Server. Beispielsweise müssen Sie einzelnen Besuchern Zugang zu einem bestimmten Verzeichnis gewähren, indem Sie ihnen ein eindeutiges Login und Passwort geben.

In dem Verzeichnis, auf das wir den Zugriff durch ein Passwort beschränken wollen, erstellen wir eine .htaccess-Datei mit den folgenden Direktiven:

AuthType Basic

AuthName "Some Name"

AuthUserFile /home/uXXXXX/.htpasswd

require valid-user 

Der Pfad /home/uXXXXX/.htpasswd gibt den vollständigen Pfad zur Passwortdatei auf der Festplatte unseres Servers an. Wenn Sie die Datei .htpasswd (sie enthält die Passwörter) beispielsweise in Ihrem Home-Verzeichnis ablegen, in das Sie gelangen, wenn Sie sich per FTP auf dem Server anmelden, sieht der Pfad zu dieser Datei wie folgt aus: /home/uXXXXX/.htpasswd, wobei uXXXXX der Name Ihrer virtuellen Sites ist (z. B. u12345).

In der Direktive AuthUserFile geben wir den absoluten Pfad zu der Datei mit den Logins/Passwörtern an, die wir etwas später erstellen werden. Wenn Sie die .htaccess-Datei auf Ihrem Computer und nicht direkt auf dem Server mit einem Texteditor erstellen, beachten Sie bitte, dass .htaccess per FTP ausschließlich im Textmodus (ASCII) übertragen werden muss.

Erstellen Sie eine Passwortdatei. Die Passwortdatei sollte Zeilen wie login:password enthalten. Das Passwort muss mit dem MD5-Algorithmus verschlüsselt sein. Eine Möglichkeit, eine solche Datei zu erstellen, ist die Verwendung des Programms htpasswd, das im Apache enthalten ist (auf unserem Server befindet es sich im Verzeichnis /usr/local/bin/, der vollständige Pfad lautet /usr/local/bin/htpasswd).

Schauen wir uns an, wie man eine Passwortdatei in der Unix-Shell direkt auf dem Server erstellt. Rufen Sie die Shell auf und führen Sie die folgenden Befehle aus:

  • htpasswd -mbc .htpasswd user1 sNQ7j9oR2w
  • erstellt eine neue .htpasswd-Datei, in der wir einen Eintrag für den Benutzer user1 mit dem in der Befehlszeile angegebenen Passwort hinzufügen. Ersetzen Sie bitte sNQ7j9oR2w durch ein beliebiges Passwort – dieses Passwort wird hier nur als Beispiel gezeigt
  • htpasswd .htpasswd user2

Fügen Sie user2 in die bestehende .htpasswd-Datei ein und geben Sie das Kennwort bei der entsprechenden Programmabfrage manuell ein.

Wenn Sie Windows verwenden und nicht die Unix-Shell zum Generieren von Passwörtern verwenden möchten, können Sie die Windows-Version des Programms htpasswd hier herunterladen und eine Datei mit Passwörtern auf Ihrem Computer erstellen und diese dann auf den Server hochladen. Wenn Sie bereits eine Windows-Version von Apache installiert haben, finden Sie die Datei htpasswd.exe im Verzeichnis Program Files\Apache Group\Apache\bin\.

Besorgen Sie sich also htpasswd.exe und verwenden Sie es, um Passwörter wie dieses zu generieren:

htpasswd.exe -mc .htpasswd user1

eine neue Passwortdatei htpasswd.exe erstellen, das Passwort und seine Bestätigung werden interaktiv abgefragt

htpasswd.exe -m .htpasswd user2

Hinzufügen des Benutzers user2 zur bestehenden Passwortdatei htpasswd.exe, wobei das Passwort interaktiv abgefragt wird.

Nachdem alle Logins erstellt worden sind, muss die Datei auf den Server hochgeladen werden.