Zur Navigation

Weiterleitung mit 301

1 Detlef (Gast)

Hallo Jörg
Eine Frage hätte ich noch ... ;-)

Wie kann ich jetzt per mod_rewrite schreiben, dass zum Beispiel die Seite:

www.beispiel.de/index.php/products_id/XXXX
(wobei das XXXX Ziffern sind)

nach

www.beispiel.de/index.php?products_id=XXXX
(wobei das XXXX die gleiche Ziffer wie in der Ausgangs URL sein soll?)

umgezogen ist. Ein 301 sollte unbedingt gesendet werden.

14.01.2010 16:50

2 Jörg Kruse

Das würde ich so probieren:

RewriteRule ^index\.php/products_id/([0-9]+)$ http://www.beispiel.de/index.php?products_id=$1 [R=301] 

14.01.2010 19:21

3 Detlef (Gast)

Das funktioniert wunderbar!
Vielen lieben Dank!!!

Detlef

14.01.2010 19:28

4 Detlef (Gast)

... darf ich noch eine ...Jörg? ;-)

Jetzt müsste ich (das ist wirklich die letzte Frage!):

www.beispiel.de/product_info.php/cPath/xxxx/products_id/xxxx

xxx = Ziffern

generell mit 301

zu -> www.beispiel.de/product_info.php?products_id=xxxx umleiten.

der Bereich /cPath/xxxx/ kann ignoriert werden. Wichtig ist, dass die letzten Ziffern
oben hinter products_id/xxxx <---die

unten an ?products_id=xxxx <--- hier dran!

Danke schon einmal vorab .. ;-)

Detlef

P.S. ... und mod_rewrite werde ich wohl trotzdem nie verstehen .... ;-(

14.01.2010 20:16

5 Jörg Kruse

Das sollte so gehen:

RewriteRule ^product_info\.php/cPath/[0-9]+/products_id/([0-9]+)$ http://www.beispiel.de/product_info.php?products_id=$1 [R=301]

"[0-9]+" repräsentiert mehrere Ziffern; der erste geklammerte Ausdruck im Muster wird auf der rechten Seite durch ein "$1" wieder aufgenommen

14.01.2010 22:45 | geändert: 14.01.2010 22:45

6 Detlef (Gast)

Hallo und guten Abend

Ich vergaß mitzuteilen, dass es 3 mögliche Grundvarianten der umzuschreibenden URL gibt.

Version 1:
www.beispiel.de/product_info.php/cPath/xxxx/products_id/xxxx
funktioniert super mit o.g. Regel.
Allerdings gibt es bei mir noch folgenden Versionen:

Version 2:
www.beispiel.de/product_info.php/cPath/xxxx_xxxx/products_id/xxxx

und

Version 3:
www.beispiel.de/product_info.php/cPath/xxxx_xxxx_xxxx/products_id/xxxx

Version 2 u. 3 funktionieren natürlich mit o.g. Regel nicht. Klar, der Trenner _ zwischen den Ziffern ist ja in der Regel nicht vorhanden.

Hast Du abschließend auch dafür eine Lösung? Am besten wäre ja eine Regel für alle 3 möglichen Varianten. Auch eine Regel für jede Version würde mir sehr weiter helfen.

Lieben Gruß (... und DANKE für Deine Mühen Jörg!)

Detlef

14.01.2010 23:52

7 Jörg Kruse

Dazu kannst du die Zeichenklasse [0-9] einfach durch einen Unterstrich erweitern

RewriteRule ^product_info\.php/cPath/[0-9_]+/products_id/([0-9]+)$ http://www.beispiel.de/product_info.php?products_id=$1 [R=301]

15.01.2010 00:00

8 Detlef (Gast)

Guten Morgen!

Hab vielen Dank für die Hilfe. Ohne Dich wäre ich wirklich aufgeschmissen! Absolut genial, so unkompliziert wirklich gute Hilfe zu bekommen.

D A N K E !

Detlef

15.01.2010 01:23

9 Detlef (Gast)

Guten Morgen Jörg ...

Ja ... 3.15 Uhr und ich sitze immer noch vor der Kiste weil erneut eine Frage aufgetaucht ist, die ich nicht beantworten kann.

Ich möchte von:

http://www.beispiel.de/product_reviews_info.php/products_id/XXX/reviews_id/XXXXX

nach

http://www.beispiel.de/product_reviews_info.php?products_id=XXX&reviews_id=XXXXX

mit einem 301 umleiten.

Sowohl die Ziffern (variable Stellen - also 1,2,3,4,5 stellig) XXX hinter products_id/ von oben und die Ziffern (variable Stellen - also 1,2,3,4,5 stellig) hinter reviews_id/ müssen jeweils unten wieder an enstprechender Stelle in die umgleitete URL eingefügt werden.

Eine Hilfe noch? ;-)

Danke schon mal!

Gruß
Detlef

19.01.2010 03:27

10 Jörg Kruse

Du verwendest einfach zwei passende geklammerte Ausdrücke im Muster, die du durch $1 und $2 im Weiterleitungsziel wieder aufnehmen kannst

RewriteRule  ^product_reviews_info\.php/products_id/([0-9]+)/reviews_id/([0-9]+)$ http://www.beispiel.de/product_reviews_info.php?products_id=$1&reviews_id=$2 [R=301]

19.01.2010 14:31