mod_rewrite und dynamische WebsitenMit dem Apache Modul mod_rewrite können Sie ihre dynamischen Websiten suchmachinenfreundlicher machen, indem der URL einfach ein wenig angepasst wird.

Mit dem Apache Modul mod_rewrite können Sie ihre Websiten
suchmachinenfreundlicher machen. Eine Suchmaschine erkennt eine dynamische Webseite an dem "?" bei dem URL. Manche Suchmachinen geben schon bei der Sicht dieses Fragezeichen die Indexierung auf. Auch Dateien mit der Dateiendung *.php, oder *.pl werden oftmals
nicht (korrekt) indexiert.
Dies kann unter der Verwendung des mod_rewrite verhindert werden. Das Ziel ist es, die "?", und die Wertzuweisungen als Parameter in dem URL durch einen "/" zu ersetzen.
Abgerundet kann dies noch dadurch werden, das die dynamischen Dateiendungen z.B. durch *.html oder *.shtml ersetzt werden.

Der URL, z.B. zu einem Newsskript sieht anfangs noch so aus

http://www.seite.de/news.php?nr=1

Besser wäre es natürlich, wenn der URL am Ende so aussehen würde.

http://www.seite.de/news/1.html

Zunächst muss definiert werden, wie, und was das mod_rewrite in dem
Fall an dem URL verändern soll. Zunächst einmal das Fragezeichen, es
soll durch einen / ersetzt werden. Die Dateiendung *.php soll komplett aus dem URL verschwinden, auch die Wertzuweisung des Parameters nr="" soll ganz ersetzt werden. Der Apache soll anhand des URL die entsprechende nr automatisch ermitteln, und an das Skript übergeben.

Zunächst muss die RewriteEngine auf on geschaltet werden. Danach wird die RewriteRule, die Regel definiert.

RewriteEngine on
RewriteRule ^news/(.*)\.html$ news.php?nr=$1


Das wirkliche Umschreiben des URL macht die RewriteRule. Mit ihr wird
die "Regel" definiert, nach welcher der URL verändert werden soll.
news/(.*)\.html$
Das (.*) nach news/ kann für alles stehen, es ist eine Art Platzhalter, der innerhalb des Regulären Ausdrucks wie eine Variable verwendet werden kann.
Da es der erste Platzhalter ist, wird es als Variable $1 definiert.
In unserem Beispiel ist die Variable die Nummer der News.
Durch einen\ getrennt steht die Dateiendung des Artikels,

Der URL sieht jetzt so aus.

http://www.seite.de/news/nummer.html

Das $ Zeichen definiert das Ende des Regulären Ausdrucks. Dahinter steht der "wirkliche" URL zu dem Skript, aus welchem das Ergebnis der Abfrage geholt wird, und über den anscheinenden URL ausgegeben wird.

/news.php?nr=$1

Das $1 steht wie gesagt für die Artikelnummer.
Und das ist auch schon alles. Anfragen werden jetzt über beide Adressen behandelt, zum einen direkt an das Skript, über den gewöhnlichen URL, oder über den vom mod_rewrite erzeugen URL.

Mit dem mod_rewrite lässt sich auf diese Art vieles machen. Wer die Möglichkeit hat, mit dem Modul zu arbeiten, der sollte diese auf jeden Fall wahrnehmen.

Bookmark setzen... These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Bloglines
  • MisterWong
  • MySpace
  • Reddit
  • SEOigg
  • Technorati
  • TwitThis
  • Y!GG
  • Google Bookmarks

Weiterführende Links: