.htaccess ist ein mächtiges und sehr umfangreiches Werkzeug. Hier möchte ich ein paar praktische Anwendungsbeispiele mit Erklärung bereitstellen.
Jedes mal wenn der Browser eine Datei auf einem Webserver anfordert (diesen Vorgang nennt man HTTP-Request) wird bei Apache-Servern nach einer sogenannten .htaccess-Datei gesucht.
Darin stehen verschiedene Dinge, die den Aufruf der Internetseite manipulieren können.
Weiterleitungen
Über die .htaccess-Datei können wir eine Weiterleitung von einer Domain zur nächsten veranlassen. Gebe ich also beispielsweise www.domain.com ein werde ich auf domain.de weitergeleitet. Das schöne ist, dass wenn ich domain.com/impressum.html eingebe wird der Aufruf des Impressums mit übermittelt und ich erhalte die Seite domain.de/impressum.html.
Über .htaccess können wir noch sagen was es für eine Weiterleitung sein soll. Google beispielsweise benutzt diese Angabe für die Indexieren der Internetseiten.
Eine 301-Weiterleitung ist beispielsweise permanent und Google weiß, dass er die Links im Index entsprechend ändern muss, eine 302-Weiterleitung teilt Google mit, dass die Seite nur temporär umgeleitet wird.
Innerhalb der htaccess-Datei steht dann beispielsweise:
Redirect 301 / http://www.neue-domain.de/
Wir können die Weiterleitung auch auf bestimmte Ordner beschränken:
Hier wird die Weiterleitung nur dann durchgeführt, wenn man auf den Ordner Login zugreifen möchte. Und durch den Code 302 wird gesagt: Die Weiterleitung ist nur temporär.
Mit und ohne www
Wir wissen, dass Google die Seite www.domain.de und domain.de als zwei unterschiedliche Seiten betrachtet. Um zu verhindern, dass dies als doppelter Content erkannt wird sollte man nur einen der beiden Varianten verwenden. Also entweder mit oder ohne www.
Meist verwendet man die Internetseite mit www. in diesem Fall können wir folgenden Code in die htaccess-Datei einfügen:
Darin steht praktisch folgende Aussage: Wenn die URL nicht mit www. beginnt, leite weiter auf die Seite www.domain.de.
Zu einer Datei leiten
Auf meiner Arbeit erstellen wir Internetseiten immer so, dass das eigentliche root in einem Unterverzeichnis liegt. Die URL zur Startseite sieht also so aus: www.domain.de/de/index.php
Wir brauchen jetzt also eine Weiterleitung von der Eingabe der Domain zu dieser Datei. Und auch diese Weiterleitung löst man am besten mit htaccess (auch wenn HTML oder PHP ebenfalls Möglichkeiten bieten).
Aufmerksamen Beobachtern ist vermutlich das [r=301,L] aufgefallen in der ersten Rewriterule. Das müssen wir schreiben, denn ansonsten funktioniert es nicht. Spielen wir doch mal verschiedene Szenarien durch:
Ich gebe ein www.domain.de. Die erste Regel wäre damit erfüllt und er würde mich auf /de/index.php Weiterleiten. Wir haben ein www. drin, von daher bleibt die 2. Regel unberührt. Alles ok!
Ich gebe ein domain.de/de/index.php. Die erste Regel greift nicht, denn es steht ja etwas hinter der Domain, aber diesmal kommt die 2. Regel zum Einsatz, denn wir haben kein www. davor geschrieben. Also werde ich auf www.domain.de/de/index.php weitergeleitet. Auch hier alles wunderbar!
Ich gebe ein domain.de. Und jetzt gäbe es einen Fehler, wenn wir nicht das ,L darin stehen hätten. Denn jetzt sind beide Regeln aktiv. Ich habe nichts hinter der Domain stehen und es fehlt das www. Der Server würde uns ohne das ,L versuchen auf folgende Adresse zu leiten: http://www.domain.de/http://www.domain.de/de/index.php mit mäßigem Ergebnis versteht sich.
Das ,L (steht für Last und) sorgt dafür, dass wenn diese Regel ausgeführt wird, keine weitere mehr zum Einsatz kommt. Zumindest nicht für diesen HTTP-Request. Es wäre dann also die letzte Regel die ausgeführt wird (last).
Uff... htaccess ist ein Thema für sich
Ja, das Thema htaccess kann ganze Bücher mit Inhalten füllen. Aber ich denke die hier erwähnten Anwendungsbeispiele dürften 70% der regelmäßigen Arbeit mit htaccess decken. Auf der neuen Professor Web Website möchte ich etwas näher darauf eingehen und einen kleinen Workshop der htaccess-Datei widmen. Bis dahin hoffe ich aber, dass dieser Beitrag Euch ein wenig weiterhelfen kann.
Kommentare (16)
Kommentar schreiben
Letzte Aktualisierung ( Donnerstag, 3. Juli 2008 )