Mod-Rewrite

Suchmaschinenfreundliche URLs
mod_rewrite ist ein Modul für den Apache- Webserver, welches die aufgerufene URL analysiert und entsprechend der eingestellten Bedingungen umschreibt / umleitet. Beim Einsatz werden in der Außensicht (für den User) andere Dateien aufgerufen als in der Innensicht (abgelegt auf dem Server). Zur Analyse werden "regular expressions" ("reguläre Ausdrücke") verwendet. Der Aufruf erfolgt in der .htaccess- Datei, dort wird zunächst die Rewrite- Engine initialisiert und anschliessend die Bedingungen abgearbeitet. Ein vollständiger Aufruf besteht immer aus Bedingung (RewriteCond) und Regel (RewriteRule).
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.ihredomain\.tld$ [NC]

RewriteRule ^ordner1/([^/]*)/([^/]*)   details1.php?gruppe=$1&p=$2 [L]
RewriteRule ^ordner2/([^/]*)           details2.php?pfad=$1
Beispiel für Rewrite-Regeln in einer .htaccess- Datei

Einsatz bei geänderten Dateistrukturen

Ein Webpräsenz lebt, wächst, verändert sich. Dies gilt auch für Dateien / Dateinamen und die Ablage in der Ordnerhierarchie. Durch mod-rewrite ist es möglich, die Zugriffe auf die alte - nicht mehr existente - Seite auf die neue Seite umzuleiten. Die Logik lautet sinngemäß "wenn alteseite.html angefordert wird, schreibe die URL um zu neueseite.html und ruf diese auf". Dadurch gelangen Besucher direkt zur neuen Seite, Lesezeichen bleiben gültig.

Tipp: Für die Suchmaschinen sollte man das rewrite unbedingt mit einer 301-Weiterleitung kombinieren. Dadurch wird die Wertigkeit der alten Seite an die neue vererbt. Die Neu- Einsortierung in die Suchergebnisse erfolgt erheblich schneller!

Einsatz zur Anpassung der Pfade

Die gesamte URL inkl. Pfad und Datei sind suchmaschinenwirksam. Finden sich also die zum Inhalt passenden Keywords auch in der URL, ist dies grundsätzlich positiv. Durch mod-rewrite wird bspw. ein Aufruf wie
http://www.ihredomain.tld/details.php?id=5&det=87

    umgewandelt zu
http://www.ihredomain.tld/fernseher/plasmafernseher.php

Hierbei wird die Variable "id=5" zum Ordner "Fernseher", "det=87" zur Datei "plasmafernseher.php". Man erhält eine für Suchmaschinen hochwertige URL, nutzerfreundlich (Lesbarkeit!) ist sie auch, der Bezug zum Inhalt ist gegeben. Der Systemadministrator hat weiterhin nur eine Datei (hier: details.php), die er pflegen muss, da der interne Aufruf wie bisher erfolgt, Ordner und Datei werden in die alten Variablen zurückgewandelt, ohne dass der User dies bemerkt.

In der Rückwandlung liegt auch die eigentliche Schwierigkeit. Aus Ordner und Dateiname müssen eindeutige Zuweisungen generiert werden. Daher findet man oft URLs wie
http://www.ihredomain.tld/fernseher/plasmafernseher_87.php

Hier wird zur Detailbestimmung die 87 aus dem Dateinamen abgeleitet.

ACHTUNG: Bei einer internen Verlinkung von Produkt zu Produkt oder im Menü müssen die neuen Pfade und Dateinamen natürlich ebenfalls verwendet werden. Dies geschieht durch den Mod-Rewrite- Einsatz NICHT automatisch und muss manuell oder besser über eine Funktion ergänzt werden!

Unter dem Stichwort "suchmaschinefreundliche URLs" bieten die meisten Blog- Installationen und Shopsysteme entsprechende Möglichkeiten an, ggf. als Erweiterung. Die Verwendung ist unbedingt empfehlenswert.

Sonstiger Einsatz

Zur Analyse stehen auch Daten wie bspw. IP-Adresse des Nutzers, der User- Agent (Browser) u.a. zur Verfügung. Man kann dementsprechend mod-rewrite auch für eine browserabhängige Umleitung verwenden oder den Nutzer geographisch umleiten.

Tipps & Fehlerquellen

- Bei einfachen Webspace- Angeboten ist der Einsatz einer .htaccess oder der Rewrite- Engine nicht verfügbar
- Durch die .htaccess-Datei wird der Apache- Webserver (teil-)konfiguriert. Die Fehlertoleranz ist sehr gering. Ein Fehler kann die Seite nicht mehr erreichbar machen.
- Regular Expressions sind schwierig. Testen Sie genau mit allen denkbaren Fehlerquellen, ob das gewünschte Ergebnis erzielt wird.
- die Pfadtiefe ist technisch praktisch nicht begrenzt. Für Suchmaschinen sollten jedoch nur flache Pfade verwendet werden (vgl. URL). Das Vorkommen von mehr als ca. 5 Keywords in Pfad + Datei kann als Manipulation interpretiert werden.