mod_rewrite: So können lesbare URLs erstellt werden!

Das Apache Modul mod_rewrite ermöglicht es, simple ausgedrückt, die Anzeige in der Browser-Zeile hübsch aussehen zu lassen und trotzdem an einen ganz anderen Ort zu leiten. Das kann zum einen technische Gründe haben wie: Umzug eines Dokuments.

Auch ist es so, dass Nutzer lieber auf eine für sie lesbare URL klicken als auf irgendwas mit ganz vielen Variablen am Ende. Und dann ist da noch die SEO-Geschichte: Google mag offensichtlich lesbare URLs lieber als Variablen-Verschachtelungen.

mod_rewrite kann relativ einfache Geschichten abwickeln, aber auch mit ziemlich komplexen regulären Ausdrücken umgehen. Zitat von Brian Behlendorf (Apache Group):

The great thing about mod_rewrite is it gives you all the configurability and flexibility of Sendmail. The downside to mod_rewrite is that it gives you all the configurability and flexibility of Sendmail.

Sorry, wer den Sendmail-Witz nicht versanden hat, der kann sich den Rest des Beitrags wahrscheinlich sparen.

Für den Fachmann

Die einfachste Lösung eine Variabel via mod_rewrite zu übergeben besteht darin, diese in der URL innerhalb eines Patterns z. B.: /meine_datei_xxrtv-12.html und diese anschließend als Variable an ein Script anzuhängen z. B.: index.php?query=12.

Aber halt: Die Script-Ausgabe ist nun aber ebenso unter meine_nicht_vorhandene_datei_xxrtv-12.html vorhanden. Das ist das nicht ganz so schicke an der Lösung. Und was passiert wenn, jemand ein bisschen rumspielt und vielleicht die 12 durch die 15 ersetzt? Somit eine nicht so wahnsinnig brillante Lösung.

Die bessere Lösung ist die Variable vorher in Buchstaben zu codieren. Wurde hier bei der Bildersuche schonmal kurz beschrieben. Was allerdings bleibt ist, dass die Datei immer noch mit einem anderen Buchstabencode aufrufbar ist. Somit zwar besser aber noch nicht ideal.

WP-Akademie
Nutzen:
WP-Akademie Inhalt
  • Ausbildung zum Internet-Unternehmer
  • Online Private-Coaching
  • Zertifizierung und Auszeichnung
WP-Akademie Button

Nun zu der aus meiner Sicht elegantesten mod_rewrite Lösung

Wir übergeben erst gar keine Variabel! Meist handelt es sich sowieso nur um die Datenbank-ID, welche benötigt wird, um dem Script zu sagen, was es anzeigen soll. Erstmal gehen wir her und verschwenden in der Datenbank je Datensatz noch ein Feld mit dem Dateinamen z. B. “pups-strulli-seite”.

Das “.html” lassen wir mal entspannt weg. Das hat den Vorteil, dass zum einen der gewünschte Dateiname immer zur Verfügung steht und auch bei Bedarf gezielt geändert werden kann (Keywords!).

Dann sagen wir mod_rewrite was wir denn gerne bei einem Aufruf übergeben hätten, was so geht:

Damit gibt uns mod_rewrite alles zurück, was zwischen “.tld/” und “.html” steht. Das können wir dann ganz einfach in der Datenbank suchen und uns auch die restlichen benötigen Daten aus der Datenbank holen.

Zu beachten:

  • Bei dieser Variante, darf jeder Dateiname nur einmal vergeben werden (Es ist auch nicht gerade üblich mehrfach den gleichen zu vergeben 🙂 ).
  • Es muss ein zentrales Script geben, was herausfindet um welchen Datenbank-Eintrag es sich handelt. Danach kann man Scripte per include laden oder einfach per location weiterleiten.
  • Bei mehreren Datenbanken müssen mehrere Anfragen her, am besten nach der Aufruf-Wahrscheinlichkeit als case-Schleife mit break aufrufen.

Alles klar? Alles verstanden? Noch ne bessere Idee? Raus damit!

Bewerte diesen Artikel
1 Stern2 Sterne3 Sterne4 Sterne5 Sterne


Bis jetzt keine Bewertung
Loading...

3 Kommentare zu mod_rewrite: So können lesbare URLs erstellt werden!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

How-to-WordPress.de unterstützt dofollow und ist somit nofollow frei.