Zur Navigation

Umleitung müsste doch eigentlich funktionieren.

Kleine Umleitung für xt Commerce mit Shopstat-Modul

1 Mathias

Hallo,

ich habe hier eine alte (aber bereits von Google indizierte) URL von einem xt:commerce-System.

Das XT-System ist jetzt schon auf das Shopstatmodul erweitert worden und um das Modul von Gunnart um doppelten Content zu vermeiden.
Das Gunnart-Modul berücksichtigt allerdings nur die Produkte und nicht den Content und auch nur URLs, die nicht die XT-eigenen SEO-URLs sind.

Damit allerdings alle bereits von Google indizierten XT-SEO-URLs auf die neuen URLs von Shopstat permanent umgeleitet werden, habe ich folgende Modifizierung an der htaccess gemacht (und hoffe, dass sie auch wirklich permanent umgeleitet werden):

RewriteEngine on
RewriteRule (.*)/info/p([0-9]+)_(.+).html$ /product_info.php?products_id=$2 [R=301,L]
RewriteRule (.*)/products_id/([0-9]+) /product_info.php?products_id=$2 [R=301,L]

Im Zusammenhang mit dem Modul von Gunnart funktioniert das recht gut.

Der Content jedoch ist nach wie vor über beide URLs zu erreichen.
Diese würde ich gerne umleiten
z.B.:
von http://www.domain.de/shop_content.php?coID=7
auf http://www.domain.de/Kontakt:_:7.html

Dazu habe ich bereits folgende Rule in die htaccess geschrieben:
RewriteCond %{QUERY_STRING} ^coID=7$
RewriteRule ^shop_content\.php$ http://www.domain.de/Kontakt:_:7.html? [R=301,L]

Leider führt dieser zu einer Endlosschleife auf dem Server und ich kann es nicht nachvollziehen. Was ist falsch? Was kann ich anders machen?

Lieben Gruß,
Mathias

16.03.2009 15:42

2 Jörg Kruse

Naja, die Endlosschleife kommt womöglich dadurch zustande, dass extern von dynamischer zur statischen URL weitergeleitet wird und intern von der statischen auf die dynamische URL umgeschrieben wird.

Vielleicht kann man eine Abbruchbestimmung definieren. Wie lautet denn die Rule, mit welcher /Kontakt:_:7.html intern rewritet wird?

16.03.2009 18:46

3 Mathias

Ich glaube, ich habe den Fehler gefunden. Weiter unten in der htaccess gibt es folgenden Code:

##-- Produkte
#-------------------
RewriteRule (.*)::(.+)\.html$ /product_info.php?products_id=$2 [qsappend,L]


##-- Content
#-------------------
RewriteRule (.*):_:([0-9]+)\.html$ /shop_content.php?coID=$2 [qsappend,L]

Das wird nach meinem bescheidenen Wissen natürlich eine Endlosschleife auslösen.

Ich hatte diese Regel kurzfristig deaktiviert, aber dann hatte das Shopstat-modul die IDs des Content für die IDs der Produkte gehalten und die entsprechenden Produkte angezeigt.

16.03.2009 20:12

4 Jörg Kruse

Probier's mal mit dieser zusätzlichen Bedingung:

RewriteCond %{THE_REQUEST} shop_content\.php
RewriteCond %{QUERY_STRING} ^coID=7$
RewriteRule ^shop_content\.php$ http://www.domain.de/Kontakt:_:7.html? [R=301,L]

16.03.2009 20:24

5 Mathias

GOTT!

Das war es! Es funktioniert. Dann werde ich mal für alle 10 Contents diese Rule hinzufügen.

Vielen Dank! :-)

16.03.2009 20:27

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]