Zur Navigation

Suchmaschinenfreundliche URLs mit mod_rewrite

1 Frank

Wie kann man eine statischen URLs mithilfe von mod_rewrite erzeugen?

09.01.2007 10:12

2 Jörg Kruse

Hallo Frank,

ich erkläre das mal anhand einer URL, die ich in dem anderen Thread schon als Beispiel genommen hatte:

http://www.delter.de/oberkategorien_inhalt.php?searchtext=auto&oberkat_id=1&kid2=3&unterkat_id=187

Dynamische URLs enthalten nach dem ? mehrere Parameter, die durch & voneinander getrennt sind, in diesem Fall:

searchtext=auto
oberkat_id=1
kid2=3
unterkat_id=187

Auis den dort enthaltenen Variablen könnte man z.B. eine solche statische URL machen:

http://www.delter.de/1/3/187/auto

Das Umwandeln beinhaltet zwei Arbeitsschritte:

1. du wandelst nach diesem Schema die URLs in den Links um. Browser und Bots fordern danach die so erzeugten statischen URLs vom Server an

2. eine mod_rewrite Rule in der .htaccess wandelt diese URLs intern wieder in die dynamischen URLs um, damit der Server das Script mit den realen Paramatern aufrufen kann

In dem konkreten Fall kann die Rule in der .htaccess folgendermaßen aussehen:

RewriteEngine On

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.+)$ oberkategorien_inhalt.php?searchtext=$4&oberkat_id=$1&kid2=$2&unterkat_id=$3

Erläuterungen:
"RewriteEngine On" schaltet mod_rewrite ein (braucht nur einmal in der .htaccess)
^ und $ sind Begrenzungszeichen
Das ([0-9]+) bezeichnet einn Ausdruck mit ein oder mehreren Zahlen, das (.+) einen Ausdruck mit einem oder mehreren Zeichen.
Die Ausdrücke in runden Klamern werden in ihrer Reihenfolge auf der rechten Seite als $1, $2, $3 und $4 wieder aufgenommen

Je nach Serverkonfiguration kann es auch noch notwendig sein, eine RewriteBase anzugeben (Verzeichnis, auf welches sich die folgenden Rules beziehen)

RewriteEngine On

RewriteBase /
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.+)$ oberkategorien_inhalt.php?searchtext=$4&oberkat_id=$1&kid2=$2&unterkat_id=$3

09.01.2007 13:17

3 Rudy

Bliebe noch zu erwähnen, dass eine URL wie

http://www.delter.de/auto/sportwagen/ford/gt/
SEO-technisch einer URL wie

http://www.delter.de/1/3/187/auto
wegen der URL-Keywords überlegen ist.

09.01.2007 19:56

4 Jörg Kruse

Ja, in einem nächsten Schritt kann man dann sogenannte sprechende URLs erzeugen, so wie z.B. auch hier im Forum. Dazu müssen die Titel als weitere Parameter (oder anstelle der alten Paramter) in die dynamischen URL eingebaut werden. Das Rewriten ist dann vom Prinzip her ähnlich

09.01.2007 21:33

5 Frank

Puuhh, das habe ich jetzt mal verinnertlich und werde es mal ausprobieren. Schon mal Danke!

Gruß Frank

10.01.2007 07:29

6 Jörg Kruse

Das ist auch keine ganz einfache Materie. Und wenn du damit nicht weiterkommst und Fragen hast, kannst du diese hier stellen :)

10.01.2007 08:57

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]