Liebenstein Jürgen Online

Eigene .htaccess

 
Hauptseite
Zurück


Allgemeines zur Datei .htaccess

Die Datei .htaccess ist eine Art Konfigurationsdatei in der Sie angeben können wie sich der Webserver verhalten soll bzw. was unter bestimmten Bedingungen passieren soll. Es handelt sich dabei um eine Textdatei, in der Sie Bereiche definieren können und Befehle mit entsprechenden Parametern angeben können. Sie können in jedem Verzeichnis eine eigene .htaccess-Datei haben. Eine .htaccess-Datei gilt aber in allen zugehörigen Unterverzeichnissen, so dass auch eine einzige im Hauptverzeichnis genügt. Eine Datei in einem Unterverzeichnis überschreibt die Einstellungen der übergeordneten Datei. Folgende Themen werden in diesem Dokument betrachtet:


Pfadangaben in .htaccess

Bei vielen Befehlen in der .htaccess benötigen Sie Pfadangaben als Parameter. Immer dann, wenn Sie eine Datei als Parameter angeben, haben Sie auch die Möglichkeit, einen Pfad anzugeben. Sie haben mehrere Möglichkeiten um diese Pfade anzugeben.
http://www.Ihr-Domänenname.de/Verzeichnis1/Verzeichnis2/Datei.html

Eine Pfadangabe die direkt auf einen Webserver und dort auf eine Datei zielt.
/Verzeichnis1/Verzeichnis2/Datei.html

Eine absolute Pfadangabe beginnt entweder mit Eine absolute Pfadangabe beginnt immer mit einem "/" und verzweigt vom Hauptverzeichnis des Webservers, egal wo Sie sich befinden. Die .htaccess befindet sich auf Verzeichnis1/Verzeichnis2/.htaccess und die Pfadangabe ist /Verzeichnis1/Datei.html, dann wird die Datei im Verzeichnis1 gesucht.
Verzeichnis2/Datei.html

Eine relative Pfadangabe besitzt am Anfang kein "/" und verzweigt dann von der aktuellen Position. Die .htaccess befindet sich auf Verzeichnis1/.htaccess und die Pfadangabe ist Verzeichnis2/Datei.html, dann wird die Datei in /Verzeichnis1/Verzeichnis2 gesucht.
Beginnt eine relative Pfadangabe mit "../" dann wechselt man mit jedem "../" ein Verzeichnis höher. Die .htaccess befindet sich in Verzeichnis1/Verzeichnis2/.htaccess und die Pfadangabe ist ../Verzeichnis3/Datei.html, dann wird die Datei in /Verzeichnis1/Verzeichnis3 gesucht.
Datei.html

Eine Dateiangabe alleine sucht diese Datei im aktuellen Verzeichnis. Die .htaccess befindet sich auf Verzeichnis1/.htaccess und die Dateiangabe ist Datei.html, dann wird die Datei auch in /Verzeichnis1 gesucht.


Standarddateien neben index.html

Wenn ein Besucher in der Adresszeile des Browsers http://www. angibt, so hat er keine spezielle Datei angegeben. Im Normalfall wird nun die Standarddatei index.html geladen. Sie können mit dem Befehl

DirectoryIndex index.html index.php

mehrere Verschiedene Dateien angeben.Dabei werden die Dateien von links nach rechts gesucht und die erste gefundene wird an den Client gesendet. Erst wenn alle Dateien nicht vorhanden sind, wird eine Fehlermeldung gesendet. Dies ist besonders dann interessant, wenn Sie standardmäßig eine Script-Datei, wie in diesem Beispiel index.php, laden wollen. Dies funktioniert übrigens auch in Unterverzeichnissen, so lädt die Eingabe http://www.Ihr-Domänenname.de/Shop die index.html oder index.php im Verzeichnis Shop. Auch so können Sie logische Bereiche definieren.


Dateiname der .htaccess

Die Datei .htaccess heißt normalerweise .htaccess. Mit dem Befehl

AccessFileName .datei

wird in allen Unterverzeichnissen nun der neue Dateiname .datei benützt. Sie können auch mehrere Namen angeben um z.B. alle Fehlerdokumente in .error zu definieren. Wenn Sie miehrere Dateinamen angeben, werden alle diese Dateinamen geladen und alle diese Einstellungen benützt.


Fehlerdokumente

Wenn ein Fehler auftritt, z.B. eine Datei ist nicht vorhanden, so sendet der Webserver normalerweise eine Fehlernummer an den Browser, der dann eine Standardseite anzeigt. Sie können aber auch Webseiten erstellen die im Fehlerfall angezeigt werden. Dazu geben Sie in der .htaccess folgenden Befehl an

ErrorDocument 404 Fehler404.html

Wenn nun eine Seite nicht vorhanden ist, Fehler-Nummer 404, dann wird die Seite Fehler404.html an den Browser gesendet. Mit dieser Seite können Sie dann dem Benutzer weitere Informationen an die Hand geben. Eine Liste mit allen Fehlernummern finden Sie unter Fehlerdokumente. Sie sollten Fehlerdokumente für die Fehler 401, 403, 404 und 500 anlegen.


Verzeichnisliste

Wenn ein Besucher in der Adresszeile des Browsers http://www. angibt, so hat er keine spezielle Datei angegeben. Im Normalfall wird nun die Standarddatei index.html geladen. Gibt es diese Datei nicht, so wird ein Verzeichnislisting gesendet oder eine Fehlernummer. Dies können Sie steuern. Der Befehl

Options -Indexes

schaltet das Senden der Verzeichnisliste aus. Das heißt es wird eine Fehlermeldung an den Browser gesendet oder ein entsprechendes Fehlerdokument. Der Befehl

Options +Indexes

schaltet das Senden der Verzeichnisliste ein. Es gibt eine Reihe von Befehlen mit dessen Hilfe Sie das Aussehen dieser Verzeichnisliste beeinflussen können. Wir gehen hier nicht näher darauf ein.


Dateitypen

Für bestimmte Fälle kann es notwendig sein, Dateitypen zu definieren. Normalerweise sendet der Webserver alle unbekannten Dateien als Textdateien. Dies kann dazu führen, dass Sie nur Buchstabensalat auf dem Bildschirmsehen. Ein Beispiel ist die Favicon.ico, hier müssen Sie dem Browser mitteilen, dass dies eine Icon-Datei ist, die der Server im binären Format senden muss. Dies geschieht über den Befehl

AddType image/x-icon .ico

Nun kennt der Webserver Dateien mit der Endung .ico und sendet diese als image-Datei vom Typ x-icon, so dass sie richtig angezeigt werden kann.


htm-Datei als PHP parsen

Webseiten erweitern sich und was am Anfang als reine HTML-Seite gedacht war, kann plötzlich die Begehrlichkeit wecken, PHP-Befehle innerhalb dieser Datei zu nutzen. Leider passiert dann im ersten Moment gar nichts. Ein Ändern der Dateiendung wäre zwar efolgversprechend, doch dann finden Suchmaschinen die Datei nicht mehr und Links sowie Favoriten funktionieren auch nicht mehr. Man muss dem Server mitteilen, dass er die Datei parsen soll. Dies geschieht mit:

AddType application/x-httpd-php .htm


Datei von anderem Ort laden (Redirect)

Zwar sollte man versuchen eine Webseite von Anfang an gut zu organisieren, so dass es "nie" nötig wäre Objekte umzubenennen oder gar zu verschieben, aber das ist wohl graue Theorie und so kommt es immer wieder vor, dass man Seiten umbenennen muss oder verschieben möchte. Auch der erweiterte Einsatz von php kann den Wunsch hegen, .htm-Seiten in .php umzubenennen.
Dies zieht allerdings Probleme nach sich. Suchmaschinen und externe Links verweisen auf die Seiten und Benutzer haben vielleicht entsprechende Favoriten oder Lesezeichen gesetzt. Darauf haben Sie aber keinen Zugriff, Links zu Ihrer Seite, Suchmaschinen-Einträge und Lesezeichen würden nicht mehr funktionieren. Also was tun ? Der Webserver kennt das "Redirect"-Kommando. Hier ein Beispiel:

Redirect 301 /Altes_Verzeichnis/Alter_Name.htm http://www.liebenstein.de/Neues_Verzeichnis/Neuer_Name.php

Die Zahl 301 steht für den Fehler "301 Moved Permanently" und teilt dem anfragenden Client mit, das die Seite permanent verschoben wurde. Weitere Informationen zu den Fehler-Nummern finden Sie im Bericht Fehlerdokumente. Der Client holt die Seite dann automatisch von der neuen Position. Wichtig sind dabei folgende Dinge:
  • Sie müssen den Redirect in der .htaccess-Datei im Hauptverzeichnis definieren
  • der alte /Pfad/Dateiname muss mit einem Slash beginnen
  • der neue muss eine komplette Angabe der Form http://Domain/Pfad/Dateiname sein
Hier finden Sie ein Beispiel http://online.liebenstein.de/Beschreibung/Alter_Ort.php

Auf diese Weise können Sie auch ganze Verzeichnisse verschieben

Redirect 301 /Altes_Verzeichnis http://www.liebenstein.de/Neues_Verzeichnis

Der Redirect gilt dann für alle Dateien und Unterverzeichnisse des entsprechenden Verzeichnisses. Alternativ können Sie auch den Fehlercode "302 Moved Temporarily" benutzen. Dies steht für Dateien oder Verzeichnisse die nur vorübergehend verschoben werden.


Veröffentlicht am 25.09.2006
Letzte Änderung am 24.11.2006
RunAProg-Counter V1.3

Besucher seit 23.11.2006