Funktionen der htaccess-Datei


URL: http://www.netzadmin.org/server/apache/apache-htaccess.htm
Mit den sogenannten htaccess-Dateien kann man das Verhalten des Apaches, wie es vom Systemadministrator festgelegt wurde, verändern. Man kann mit der htaccess-Datei z.B. eigene Fehlerdokumente festlegen oder passwortgeschützte Bereiche erstellen. Auf diese beiden Sachen werde ich in diesem Artikel näher eingehen. Es ist mit den htaccess-Dateien auch möglich das Aussehen der Standardseiten z.B. das Aussehen der Directory-Listings zu beeinflussen.

htaccess-Dateien erzeugen

htaccess-Dateien tragen typischerweise den Namen .htaccess. Beachten sollten Sie den Punkt am Anfang des Dateinamens. Wenn Ihre htaccess-Datei nicht mit diesem Punkt anfängt, wird sie wahrscheinlich nicht von dem Apache erkannt werden.

htaccess-Dateien erzeugen Sie am besten mit dem Editor Notepad, der schon bei Windows dabei ist.
Öffnen Sie also den Editor und schreiben Sie die Sachen rein. Speichern Sie die Datei jetzt z.B. in dem Ordner c:\intranet\Apache\htdocs mit dem Namen htaccess.txt ab und schließen Sie Notepad. Gehen Sie jetzt in die MS DOS-Eingabeaufforderung (zu finden unter Start->Programme oder unter Start->Programme->Zubehör) und wechseln Sie in das Verzeichnis, in dem die htaccess-Datei liegt. Falls Sie nicht wissen, wie man mit DOS umgeht, hier ein kleines Beispiel:

Laufwerk wechseln:		c:
Ins Root-Verzeichnis:		cd \
In htaccess-Verzeichnis (#1):	cd intranet\Apache\htdocs

In diesem Beispiel wechseln Sie erst auf das Laufwerk c, dann wechseln Sie in das Root dieses Laufwerks (ist nur manchmal nötig, aber der Schritt schadet ja auch nicht ;)) und dann wechseln Sie in das Verzeichnis c:\intranet\Apache\htdocs. In diesem Verzeichnis liegt in meinem Beispiel die htaccess-Datei. Jetzt müssen Sie nur noch die htaccess-Datei umbenennen:

ren htaccess.txt .htaccess
exit

Mit dem exit schließen Sie die MS DOS-Eingabeaufforderung wieder.

Falls Sie die Standard httpd.conf benutzen, die beim Apache dabei war, müssen Sie noch eine Änderung vornehmen, damit die .htaccess-Dateien überhaupt berücksichtigt werden. Ersetzen Sie AllowOverride None überall in der Konfigurationsdatei durch AllowOverride All.

Fehlerdokumente festlegen

Wenn der Apache eine Anfrage nicht beantworten kann, weil die Anfrage fehlerhaft war, oder weil der Apache selbst falsch konfiguriert ist, sendet er an den Client normalerweise ein Standard-Fehlerdokument zurück. Da dieses aber nicht sonderlich schön ist, möchten viele Webdesigner es an das Layout ihrer Website anpassen. Das machen Sie durch folgende Einträge:

ErrorDocument 403 /fehler.htm
ErrorDocument 404 http://andere-url.de/fehler.htm
ErrorDocument 500 "Es ist ein interner Serverfehler aufgetreten."

Bei einem 403-Fehler würde die Seite http://[servername]/fehler.htm (also die Datei fehler.htm aus dem DocumentRoot des Servers [servername]) ausgegeben werden.
Bei einem 404-Fehler würde der Besucher auf eine externe URL (in diesem Fall http://andere-url.de/fehler.htm) weitergeleitet werden und bei einem 500-Fehler würde einfach der Text "Es ist ein interner Serverfehler aufgetreten." ausgegeben werden.

Sie haben also die Möglichkeit für jeden Fehlertyp eine bestimmte Fehlermeldung nach einem der obenstehenden "Muster" ausgeben zu lassen. Eine Liste mit den häufigsten Fehlercodes finden Sie auf der Statuscode-Seite.

Passwortgeschützte Bereiche festlegen

Ich gehe in diesem Beispiel davon aus, dass Sie den Apache Webserver nach c:\intranet\Apache installiert haben. Wechseln Sie also wieder in die MS DOS-Eingabeaufforderung, wechseln Sie in das Verzeichnis c:\intranet\Apache\bin (wie Sie Verzeichnisse unter DOS wechseln finden Sie oben) und geben Sie folgendes ein:

htpasswd -c c:\intranet\Apache\htdocs\.htpasswd benutzername

Geben Sie danach das Passwort für den Benutzer benutzname ein. Sie werden jetzt unter c:\intranet\Apache\htdocs\.htpasswd eine Passwortdatei finden, in der der Benutzer benutzername und sein Passwort gespeichert sind.

Falls die Datei c:\intranet\Apache\htdocs\.htpasswd schon existiert und Sie nur einen weiteren Benutzer hinzufügen wollen, dann müssen Sie das -c weglassen, da das dafür sorgt, dass die Datei neu angelegt wird.

Jetzt müssen Sie noch folgendes in Ihre .htaccess-Datei einfügen:

AuthType Basic
AuthName "Kurze Beschreibung"
AuthUserFile c:/intranet/Apache/htdocs/.htpasswd
require valid-user

Bei Kurze Beschreibung handelt es sich um etwas, dass sich der Browser merkt, damit er sie nicht bei jedem Zugriff auf den passwortgeschützten Bereich wieder nach dem Passwort fragen muss. Der Text wird außerdem mit angezeigt (jedenfalls bei den meisten Browsern), so dass Sie hier noch eine kurze Beschreibung des passwortgeschützten Bereiches angeben können.

Hinter require kann entweder valid-user stehen, was bedeutet, dass jeder Benutzer, der in der .htpasswd-Datei eingetragen ist, auf den Ordner zugreifen kann. Sie können aber auch einzelne Benutzer angeben (wenn es mehrere sind, dann durch ein Leerzeichen getrennt).

Andere Funktionen der htaccess-Datei

Es gibt noch mehr Direktiven, mit denen Sie das Verhalten vom Apache beeinflussen können. Manche stelle ich Ihnen hier vor. Eine Übersicht über alle Direktiven, die in htaccess-Dateien erlaubt sind, finden Sie in der Apache-Dokumentation.

Ändern der Startseite

Mit folgendem Befehl werden die Seiten festgelegt, die der Apache anzeigt, wenn man nur ein Verzeichnis, aber keine Datei in der URL hat:

DirectoryIndex index.html index.htm index.php xyz.html

Im obigen Beispiel, versucht der Apache also die index.html anzuzeigen, wenn er die nicht findet, versucht er es mit der index.htm usw.

Verzeichnisauflistung an/aus

Sie können festlegen, ob der Apache einen Fehler zurückgeben soll, wenn sich keine Startseite in einem Verzeichnis befindet, oder ob er den Inhalt des Verzeichnisses ausgeben soll.

Options +Indexes sorgt dafür, dass der Inhalt des Verzeichnisses angezeigt wird und Options -Indexes sorgt dafür, dass ein Fehler zurückgegeben wird.