Zur Navigation

Url Ohne Parameter = Redirect, mit Parameter kein Redirect

1 Banane78

Nabend zusammen,

suche mich gerade dumm und dämlich, habe auch schon einiges ausprobiert, aber irgendwie klappt es nicht so wie ich es benötige. Vielleicht kann mir hier jemand weiterhelfen :-)

Ich habe auf meiner Seite einen Kleinanzeigenbereich unter:
http://www.meineseite.de/kleinanzeigen.php
Die einzelnen Anzeigen sind über solch eine (und ähnliche) Url abrufbar:
http://www.meineseite.de/kleinanzeigen.php?version=neu&t_beg=28044&

Nun möchte ich im Zuge einer Umstellung meines Systems einen 301 Redirect von:
http://www.meineseite.de/kleinanzeigen.php
nach:
http://www.meineseite.de/anzeigen/

Eigentlich kein Problem mit einem einfachen Redirect in der .htaccess

Nur sollen jetzt aber die einzelnen alten Kleinanzeigen weiterhin unter der alten Url abrufbar bleiben:
http://www.meineseite.de/kleinanzeigen.php?version=neu&t_beg=28044&
die Url mit unterschiedlichen Parametern soll also nicht umgeleitet werden!

Bei all meinen Versuchen habe ich es nicht hinbekommen. Meistens entstand dann so ein Kauderwelsch wie:
http://www.meineseite.de/anzeigen/?version=neu&t_beg=28044& was mir natürlich nichts nützt ;-)

Weiss hier veilleicht jemand Rat?

Danke und Gruß
Banane

22.09.2013 23:12

2 Jörg Kruse

Wenn du mod_rewrite zur Verfügung hast, kannst du damit abhängig davon weiterleiten, dass der Query String leer ist

RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^kleinanzeigen\.php$ http://www.meineseite.de/anzeigen/ [R=301,L]

23.09.2013 11:33 | geändert: 23.09.2013 11:33

1 Forenmitglied fand diesen Beitrag gut

3 Banane78

Zitat von Jörg
Wenn du mod_rewrite zur Verfügung hast, kannst du damit abhängig davon weiterleiten, dass der Query String leer ist

RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^kleinanzeigen\.php$ http://www.meineseite.de/anzeigen/ [R=301,L]

Lieber Jörg, klasse, das ist die Lösung meines eigentlichen Problems, ich danke dir!!!

Eine klitzekleine Sache wäre da aber noch, denn ich sollte genau eine Url mit Parametern umleiten:
http://www.meinesseite.de/kleinanzeigen.php?version=gesch
nach:
http://www.meinesseite.de/anzeigen/geschaeftskontakte/

habe es mit der obigen Rewrite Rule probiert, klappt aber leider irgendwie nicht :-/

23.09.2013 12:31

4 Jörg Kruse

Dazu musst du eine weitere Weiterleitung einbauen, die den betreffenden Query String berücksichtigt:

RewriteCond %{QUERY_STRING} ^version=gesch$
RewriteRule ^kleinanzeigen\.php$ http://www.meineseite.de/anzeigen/geschaeftskontakte/ [R=301,L]

23.09.2013 12:40

5 Banane78

jau, fast perfekt, jetzt hängt er mir aber die Paramater von der alten an die neue Url:

http://www.meineseite.de/anzeigen/geschaeftskontakte/?version=gesch

hmm!? :-)

23.09.2013 13:09

6 Jörg Kruse

Häng hinten noch ein "?" dran, das ersetzt den alten Query String:

http://www.meineseite.de/anzeigen/geschaeftskontakte/?

23.09.2013 15:53

1 Forenmitglied fand diesen Beitrag gut

7 Banane78

Super, perfekt, danke dir vielmals, jetzt passt alles, werde dein Forum weiterempfehlen!

23.09.2013 20:32

8 RaySumeragiZ (Gast)

Hallo,

ich habe fast das selbe Problem und dachte durch diese Anweisungen kommen ich zu Erfolg, aber leider scheint irgendwo noch ein Fehler zu sein...

ich möchte meine alten Urls mit Parameter
http://www.domain.de/index.php?seite=kat&&katid=1
aus die neuen sprechenden URLs weiterleiten
http://www.domain.de/kategorie1

Hier meine Anweisung:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^kat&katid=1$
RewriteRule ^index\.php http://www.domain.de/kategorie1/? [R=301,L]

Ich teste in xammp und auf einem Testserver, aber ich habe das Gefühl, dass bei xammp die Änderungen nicht übernommen werden.

Das 2. Problem ist, dass er zwar weiterleitet aber trotz des ? am Ende der Rule die restlichen parameter mitnimmt.

Danke für die Hilfe soweit.

18.10.2013 15:02

9 Jörg Kruse

http://www.domain.de/index.php?seite=kat&&katid=1

Mit zwei & hintereinander oder ist das ein Tippfehler?

Ich teste in xammp und auf einem Testserver, aber ich habe das Gefühl, dass bei xammp die Änderungen nicht übernommen werden.

Ist in XAMPP mod_rewrite aktiviert:

https://jkip.de/howtos/mod_rewrite

Das 2. Problem ist, dass er zwar weiterleitet aber trotz des ? am Ende der Rule die restlichen parameter mitnimmt.

Gibt es noch weitere Rules in der .htaccess Datei?

18.10.2013 16:37 | geändert: 18.10.2013 16:37

... 1 Jahr und 3 Monate später ...

10 MartinaK (Gast)

Hallo,

habe deine Weiterleitung übernommen um den Parameter print=1 abzuschneiden:

# Parameter löschen print=1
RewriteCond %{query_STRING} print=1$
RewriteRule ^(.*)$ /$1? [R=301,L]


Dies funktioniert auch z.B. bei http://www.xyz.de/?print=1.
Aber sobald noch ein Directory Pfad in der URL ist nicht mehr z.B. http://www.xyz/dir/bastelbedarf+modellbau_43.php?print=1 dann wird der Parameter nicht entfernt.
Wo ist mein Fehler. Vielen Dank für deine Rückmeldung.

11.02.2015 16:11