Zur Navigation

Redirect nach RewriteCond

1 jan12 (Gast)

Hallo!

Ich möchte von www.server.de/news.php?id=44 auf www.server.de/index.php?newsId=44 redirecten.

Also ich möchte, dass sich die URL in der Adresszeile im Browser ändert. Und nicht,dass die alte URL in der Adresszeile stehen bleibt.

Letzteres, als das Rewriten, klappt perfekt mit
RewriteCond %{query_STRING} ^id=(.*)
RewriteRule ^news.php$ /index.php?newsId=%1

Mache ich dagegen folgendes Redirect
RewriteCond %{query_STRING} ^id=(.*)
Redirect /news.php /index.php?newsId=%1

steht bei mir am Ende in der Adressezeile
www.server.de/index.php?newsId=%1

Es wird also nicht die id übernommen, sonder das %1 aus der Redirect-Angabe bleibt einfach stehen.

Was mache ich falsch? Was ist mein Denkfehler?

Vielen Dank!
Jan

13.01.2017 15:19

2 Jörg Kruse

Die Redirect und RewriteCond Direktiven gehören zwei unterschiedlichen Modulen an. RewriteCond ist wie RewriteRule Bestandteil von mod_rewrite, die Redirect Direktive ist Bestandteil von mod_alias. Das was du da umsetzen möchtest, kannst du nur mit mod_rewrite umsetzen. mod_alias kann eine RewriteCond Direktive nicht auswerten.

PS: auch mit mod_rewrite kannst du weiterleiten = redirecten; wenn die URL sich ändert, ist das dann ja auch der Fall

13.01.2017 15:25 | geändert: 13.01.2017 15:31

3 jan12 (Gast)

Wow, das ging schnell mit der Antwort! :) Danke!

Hm, aber wie ist dann der Ansatz?
Also dass auch in der Adresszeile die neue URL zu sehen ist?

Bei mir bleibt bisher halt beim rewriten immer die alte URL in der Adresszeile stehen. Die neue Seite wird zwar vollkommen korrekt dargestellt, aber die alte URL halt eben auch.

Danke
Jan

13.01.2017 15:34

4 Jörg Kruse

Am besten die vollständige URL angeben, sowie das Weiterleitungs-Flag "R" - bzw. bei einer Weiterleitung mit Status Code 301 "R=301":

RewriteCond %{QUERY_STRING} ^id=(.*)
RewriteRule ^news\.php$ http://example.com/index.php?newsId=%1 [R=301,L]

Das Flag "L" verhindert hierbei, dass folgende Rules die Ziel-URL noch ändern

13.01.2017 15:39 | geändert: 13.01.2017 15:39

5 jan12 (Gast)

Perfekt!

Vielen, vielen Dank. Das funktioniert wunderbar.

Wegen solch hilfsbereiten Menschen wie Ihnen mag ich das Internet :)

Ich wünsche Ihnen ein tolles Wochenende
Jan

13.01.2017 15:43

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]