Das Apache Modul mod_rewrite dient einfach gesagt der Manipulation von URLs. Durch bestimmte RewriteRules werden Vorgaben zum Umschreiben einer Adresse festgelegt. Die eigentliche, meist kompliziertere, Webadresse bleibt somit verborgen.
Sinn und Zweck von mod_rewrite
Der Einsatz von mod_rewrite bietet sich immer an, wenn man Usern und Suchmaschinen das Leben einfacher machen möchte. Das angestrebte Ziel ist also schnell erklärt. Suchmaschinen bevorzugen kurze und prägnante Dateinamen. Eine lange Kette von Querys ist da zum Beispiel nicht vorteilhaft. Demnach sollte man den Suchmaschinen geben, was für sie am besten ist.
Eine dynamische Webseite hat gegenüber einer statischen aber enorme Vorteile. Besonders der Aspekt der Pflege ist wichtig. Die Lösung ist also, aus dynamischen Adressen einfach statische html-Adressen zu generieren ohne die Webseitenstruktur umbauen oder auf dynamische Inhalte verzichten zu müssen. Es bedarf lediglich einer .htaccess Datei, die dies steuert.
mod_rewrite und RewriteRule
Bevor man mod_rewrite einsetzen kann, muss man eine .htaccess Datei angelegen. Anschließend aktiviert man als erstes nun das mod_rewrite Modul, was mit der folgenden Zeile geschieht:
RewriteEngine On
Darunter gibt man die RewriteBase an, welche das Verzeichnis bestimmt, in dem mod_rewrite aktiviert werden soll:
RewriteBase /
Als nächstes wird eine RewriteRule definiert, welche Regeln und Vorschriften für das Umschreiben der Adresse angibt:
RewriteRule ^(.*)(.html?)$ /index.php?id=$1
Diese Zeile ist bereits etwas komplexer und Bedarf genauerer Beschreibung. Die Syntax lässt sich aber recht einfach erklären:
^ kennzeichnet den Anfang einer Adresse
$ kennzeichnet das Ende einer Adresse
(.*) lässt alle Zeichen sowie eine beliebige Anzahl derer im Dateinamen zu
(.html?) gibt die neue Dateiendung .html vor
(.*) wird zudem an die Variable $1 übergeben und dort eingesetzt. Im Endeffekt bedeutet das, dass die im Browser eingegebene URL “zerlegt” und für den Server als dynamische Adresse ausgegeben wird. Dies ist notwendig, damit die Seiten einer dynamischen Webpage auch angesprochen werden können.
Beispiel:
Die Webseite www.domain.de ist eine dynamische Webseite, bei der die Unterseiten mittels einer Variablen geladen werden, zum Beispiel id. Ein User ruft in seinem Browser die scheinbar statische Seite www.domain.de/info.html auf.
Der Server durchläuft dann die .htaccess Datei mit der oben dargestellten RewriteRule. Die eingegebene Adresse wird also zerlegt. Der Teil info.html ist dabei besonders wichtig, da davon alle Zeichen, die vor dem Punkt stehen, in die Variable $1 geschrieben werden. Daraus ergibt sich dann die Seite /index.php?id=info auf der Webseite www.domain.de.
Über diesen Weg werden also trotz statischer URLs dynamische Seiten angesprochen, ohne dass der User davon etwas mitbekommt. Die Vorteile für die Suchmaschinen sowie den Entwickler der Webseite wurden bereits genannt. Weitere Möglichkeiten, die mod_rewrite bietet, können auf modrewrite.de nachgelesen werden.
1 Kommentar zu " Suchmaschinenfreundliche URLs mittels mod_rewrite "
Pingback & Trackback
Kommentieren