301 Redirect mit Fragezeichen

Veröffentlicht am 22.12.2006 | Kommentar schreiben | Tags: php, htaccess

Möchte man alte Seiten aus dem Google Index auf neue Seiten weiterleiten, macht man dies mit einer Serverseitigen 301 Weiterleitung per .htaccess Datei.

Sind diese alten Seiten nun in der Form index.php?id=123, so greifen die üblichen Regeln nicht mehr.

Hier ein kleines Beispiel für eine solche Regel:

RewriteRule ^index.php?id=([0-9]*)$ $1.html [L,R=301]

Diese Regel greift jedoch nicht, da das Fragezeichen eine besondere Regelform benötigt.

Hier der richtige Code:

RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule index.php %1.html? [L,R=301]

Erklärung:

Die erste Zeile definiert den Teil der hinter dem Fragezeichen steht. ^id=([0-9]*)$ ist die Regel aus dem ersten Beispiel, jedoch ohne die Datei selbst.

In der zweiten Zeile wird der Teil definiert, der vor dem Fragezeichen steht, also die Datei selbst index.php. Danach wird festgelegt, was mit dem QUERY_STRING passieren soll. Mit %1 wird auf die Variable zugegriffen, die zuvor mit ( ... ) definiert wurde.

Das ? hinter dem Ausdruck %1.html verhindert, dass der QUERY_STRING hinter die Datei gehängt wird.

Zurück zur Artikel-Übersicht


Kommentare

  1. Frank schrieb am 17.06.2009 um 16:54 Uhr
    Danke für den Code und die Erklärungen, hat mir sehr weitergeholfen!
  2. Martin schrieb am 12.11.2009 um 01:16 Uhr
    Jep, hilft mir auch jedes mal wieder! Ich kann mir diesen Code einfach nicht merken ... zum Glück weiß ich jedoch immer wo ich nachschlagen muss.

    Danke Christian!
  3. Bisley schrieb am 18.11.2010 um 22:12 Uhr
    Hi,

    gerade das mit dem ? - hat mir sehr geholfen, weil mein Query_string sich die ganze Zeit dahinter gesetzt hat, dieser kleiner Fehler hat mich einige Minuten beschäftigt - bis ich den Eintrag hier gefunden habe - danke nochmal !

*


*

Letzte Artikel

Letzte Kommentare

  • tommyiscrazy ...danke schön für die Anleitung: Auf Vista Home nun uneingeschränkte Rechte :-)
  • lukas hallo,ich habe windows vista home ... und alle beiden varianten ausprobiert ...
  • Nino Guter Tip. Hat mir sehr geholfen. Vielen Dank.Grüße
  • Mike Danke für die Anleitung. In meinem Fall war es aber notwendig, das ...
  • bahman i don't now German, but that was the best Dijkstra implementation I've seen so ...
  • Hana Hallo, ich habe Vista Home und möchte Home Office 2010 testen. Download war ...
  • Joerg Danke für die korrekte und nachvollziehbare Anleitung. Endlich ein True Admin ...