mod_rewrite und dynamische Websiten

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.

This entry was posted in Mod_rewrite, Servertechnik. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *