Beitrag wurde zuletzt am aktualisiert

Parameterreiche URL auf Nice-URL umleiten

Dynamische URL auf lesbare URL umleiten

Wenn alte Projekte einem Relaunch unterzogen werden, steht in irgend einer Projektphase der Punkt „Alte URLs weiterleiten“ an. Hierbei werden die wichtigsten (oder vielleicht auch alle) alten Links auf die künftigen neuen Adressen für einen Redirect 301 vorbereitet. In diesem Fall handelte es sich um eine recht lange und kryptische URL-Struktur des bis dato verwendeten Content Management Systems, die in etwa folgendes (gekürztes) Aussehen hatte:

Die URL www.domain.tld/CMS-Name/cfmod_index.asp?Template=5&level1=88&level2=89 sollte mit der anstehenden Live-Schaltung auf www.domain.tld/nice-url-artikel.html umleiten, was mit dieser Rewrite Rule in der project_vhost.conf – mit einer klassischen htaccess-Datei funktioniert das natürlich auch – realisiert wurde.

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/cms/cfmod_index.asp [NC]
RewriteCond %{QUERY_STRING} ^Template=5&level1=88&level2=89$ [NC]
RewriteRule ^(.*)$ http://www.domain.tld/nice-url-artikel.html? [L,R=301]

Was passiert in diesem Apache-Vierzeiler?

Nach dem Aktivieren der Rewrite Engine, wird in der 2. Zeile wird nach der angefragten URI %{REQUEST_URI}, also nach allem was vor dem ersten Parameter in der URL steht, gesucht. In Zeile 3 werden die Parameter %{QUERY_STRING}) innerhalb der URL ermittelt. Es findet keine Unterscheidung zwischen Groß- und Kleinschreibung statt [NC].
In der 4. Zeile erfolgt die 301er Weiterleitung R=301. Wichtig bei dieser Rewrite Rule ist das ? am Ende der Ziel-URL, da ansonsten die Parameter aus dem vorherigen Query String an die neue Adresse angehangen werden.

Im mod_rewrite Forum werden noch unzählige weitere Fragen zu Rewrite Conditions und Rewrite Rules behandelt. Auf www.redirect301.de poste ich lediglich Beispiele, die ich selbst im Einsatz bzw. mich intensiver mit befasst habe.
Fragen, Ergänzungen oder Meinungen zu der hier vorgestellten Weiterleitungs-Regel können gern auch hier besprochen/ kommentiert werden. Ansonsten nutzt bitte das Forum!

2 Kommentare zu "Parameterreiche URL auf Nice-URL umleiten"

  1. Wie behandel ich denn beispielweise folgende URLs:

    www.domain.com/content/index.php?content=kontakt

    soll nun auf:
    www.domain.com/kontakt

    weitergeleitet werden.

    • Wenn es nur die eine URL ist, dann würde ich (ungetestet) in etwa die folgende Regel verwenden.

      RewriteEngine On
      RewriteCond %{REQUEST_URI} ^/content/index.php?content=kontakt$ [NC]
      RewriteRule ^(.*)$ http://www.domain.com/kontakt? [L,R=301]

Hinterlasse einen Kommentar

E-Mail Adresse wird nicht veröffentlicht.


*