URL rewrite umgekehrt

hoctar

Erfahrenes Mitglied
Hallo :)
also gleich zum Problem:
wenn man seite.php?id=2 aufruft, soll weitergeleitet werden zu seite/2

ich habe bereits dies hier ausprobiert, leider kein Erfolg
Code:
RewriteRule seite\.php\?id=([0-9]+)$ /seite/$1 [R=301]
 
Moin hoctar,

der QUERY_STRING wird bei mod_rewrite separat von der URL gehandhabt, er steht als Servervariable zur Verfügung, ist aber nicht Bestandteil der URL beim Umschreiben.

Du müsstest vorher eine rewriteCond definieren, und dort eine Referenz auf die ID erzeugen:

Code:
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$ 
RewriteRule seite\.php$ /seite/%1/? [R=301]

Beachte, dass die Referenz aus der rewriteCond mit %n angesprochen wird, im Gegensatz zu Referenzen aus der rewriteRule, welche man ja mit $n anspricht.
 
Moin,

deine Frage hat mit PHP direkt recht wenig zu tun, auch wenn die Dateiendung deiner Seiten diesen Namen trägt, denn hier geht's um Umleitungen mit mod_rewrite, die in der httpd.conf oder .htaccess-Datei vorgenommen werden.

Von daher ist dein Thema im "Hosting & Webserver"-Forum besser platziert.

mfg Maik
 
Danke, die Weiterleitung funktioniert :)

Ich habe nun eine weitere rewrite rule, die die url (/seite/2) interpretiert, diese wird aber leider nicht angesprochen.

Code:
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$ 
RewriteRule ^(.*)/seite\.php$ /seite/%1-$1? [R=301]

RewriteRule /*seite/([0-9]+)-.*$ seite.php?id=$1 [L]
 
Zurück