Startseite >> Sprechende URLs mit mod_rewrite

Sprechende URLs mit mod_rewrite

Rubrik: PHP, zu den Kommentaren

Eine (manchmal auch ein) URL ist die Adresse einer Webseite – zumindest soll das für diese Betrachtung hier mal reichen. Als sprechende URL bezeichnet man nun URLs, die lesbar sind. Vermutlich wäre lesbare URL ausreichend, aber meistens wird der Ausdruck "sprechende URLs" verwendet.

Vorteile sprechender URLs

Folgende Punkte sind als Vorteile von sprechenden URLs zu nennen:

  • Lesbarkeit für den Benutzer
  • Suchmaschinenoptimierung
  • Mauszeigermagnet in der Trefferliste bei einer Suchmaschine.

Die Lesbarkeit für den Benutzer ergibt sich eigentlich von selbst. Die URL http://blog.klappity.de/kategorie/php/ ist ebend leichter zu merken als http://blog.klappity.de/kat.php?kat_id=php. Beim ersten Beispiel sagt die URL etwas über die Seite aus, die angezeigt wird, sie ist selbsterklärend. Das zweite Beispiel ist einfach hässlich und sagt nichts aus. Die Usability leidet darunter.

Die Adresse einer Seite ist ein Kriterium von vielen, welches von Suchmaschinen benutzt wird, um eine Seite zu bewerten. Der eigentliche Inhalt der Seite ist sicherlich das wichtigste Kriterium, aber auch die Adresse spielt eine Rolle. Zum einen direkt für das Ranking einer Seite, zum anderen um den Suchenden auf die eigene Seite in der Suchmaschinen-Trefferliste zu leiten, auch wenn man nicht unter den ersten drei Treffern ist. Suchmaschinen zeigen für gewöhnlich die gesuchten Wörter fett in der Seitenadresse an, wenn sie denn darin vorkommen. Wenn jetzt (fast) alle gesuchten Wörter in der URL vorkommen, so sieht der Suchende das auf den ersten Blick und man bekommt vielleicht einen Besucher, auch wenn man nicht der erste Treffer ist. Ein schönes Beispiel hierfür ist die Suche bei Google nach "Flug Berlin Mallorca". Wenn man mal die Anzeigen weglässt, so ist auf Platz 1 momentan billig-flieger-vergleich, hier kommt zwar Berlin und Mallorca in der URL vor, diese ist aber sehr lang und die Keywords fallen kaum auf. Auf Platz 2 ist die Seite http://flug.idealo.de/flugroute/Berlin-Mallorca--BER-PMI/. Hier kommen alle gesuchten Wörter in der relativ kurzen URL vor. Da diese Keywords ebenfalls im Titel der zweiten Seite vorkommen und hier das gleiche gilt wie für die URL (Suchwörter werden bei Übereinstimmung fett gedruckt) wage ich zu behaupten, dass die zweite Seite genauso viele Besucher über Google bei diesen Suchwörtern bekommt, wie die erste.

Umsetzung sprechender URLs mit mod_rewrite

So, nun hätten wir den Sinn geklärt, bleibt noch die technische Umsetzung. Meistens sieht die URL aus, als wäre es eine Verzeichnisstruktur. (im Beispiel oben Verzeichnis kategorie mit Unterverzeichnis php). Dem ist natürlich nicht so, sondern die URL wird vom Apache-Modul mod_rewrite "umgeschrieben" bevor eine Seite dann wirklich von Apache aufgerufen wird. Die Regeln für mod_rewrite liegen normalerweise in der .htaccess-Datei in dem Verzeichnis, wo die Regeln ansetzen sollen. In meinem Stammverzeichnis liegt eine .htacces-Datei mit folgendem Inhalt, um den Aufruf aller Kategorieseiten auf ein PHP-Skript umzuleiten:

RewriteEngine On
RewriteRule ^kategorie/([a-z|A-Z|0-9|\-]+)/$ index.php?category=$1 [L]

Die erste Anweisung schaltet das Umschreiben von URLs ein. Die zweite Anweisung ist die eigentliche Regel für das Umschreiben. Hinter dem Befehl RewriteRule steht ein regulärer Ausdruck. Wenn dieser reguläre Ausdruck nun eine aufgerufene URL trifft, so wird die Regel ausgeführt und an Stelle der URL im Browser die Datei hinter dem regulären Ausdruck ausgeführt. In diesem Fall wird dem Skript ein Teil der URL als Parameter übergeben (mit $1 kann ich auf den getroffenen Teil der URL zugreifen, der im ersten runden Klammernpaar steht), sodass die aufgerufene Seite anhand dieses Parameters identifiziert werden kann. Ich lasse in meinen URLs übrigens nur Buchstaben, Zahlen und den Strich zu, weshalb der reguläre Ausdruck genau diese Zeichen trifft.

die URL
http://blog.klappity.de/kategorie/php/
wird also zu:
http://blog.klappity.de/index.php?category=php

Tipp: Gefahren bei der URL-Umschreibung

Man sollte beachten, dass jede Seite nur über eine URL erreichbar ist, da man sonst leicht Ärger mit Duplicate Content bekommt. Das heißt die Adresse auf die umgeleitet wird, sollte nicht direkt aufrufbar sein. Dies kann man z.B. bewerkstelligen, indem man die URL, die gerade vom Browser aufgerufen wird, überprüft. Wenn eben die Kategorie PHP aufgerufen wird und die Adresse im Browser ist nicht http://blog.klappity.de/kategorie/php/ dann stimmt etwas nicht und man kann diesen Fall als Fehler behandeln und z.B. einen 404er zurückgeben.

Eine ausführliche Beschreibung zu mod_rewrite gibt es zum Beispiel hier: Apache Doc. Mir hat auch das Buch Apache Webserver 2 von Sebastian Wolfgarten sehr geholfen.

yigg

1 Kommentare zu: Sprechende URLs mit mod_rewrite

  1. seo-besser, 09. Juli 2010, 11:40 Uhr

    Mal abgesehen von der technischen Umsetzung haben wir in Unserem Blog versucht den Nutzen und Sinn von sprechenden URLs den Usern näher zu bringen. Bei Interesse findet man den Artikel auf:
    http://www.seo-besser.de/suchmaschinenfreundliche-urls/

Einen Kommentar schreiben






Captcha

Buch-Box

Apache Webserver 2
Installation, Konfiguration, Programmierung

In Kapitel 5 werden einige Apache-Module behandelt - unter anderem mod_rewrite. Hier habe ich eine Menge über mod_rewrite gelernt.
Mehr Informationen bei:
Amazon.de

Beiträge nach Rubrik
Amazon.de: Bestseller RSS