0

Ich versuche, von einer Cscart-URL auf eine Opencart-URL umzuleiten, aber es scheint, dass es nicht funktioniert.Cscart 301 Redirect zu Opencart

alte URL (cscart)

https://www.example.com/index.php?dispatch=categories.view&category_id=1430 

neue URL (OpenCart)

https://www.example.com/index.php?route=product/category&path=1746 

Ich möchte dieses Handbuch für die ersten 10 Hauptkategorien tun und alle anderen Unterkategorien von cscart auf die umgeleitet werden https://www.example.com Startseite.

Wie kann ich das schaffen? Auch die neue URL verwendet https.

Vielen Dank im Voraus -Konstantinos

Antwort

0

Eine einfache, manuelle Art und Weise

RewriteCond %{QUERY_STRING} dispatch=categories.view&category_id=1430 
RewriteRule ^index.php$ /index.php?route=product/category&path=1746 [R,L] 

und so weiter für alle anderen Kategorie-Zuordnungen sein würde.


Eine Alternative, die alte category_id und verwenden Sie es mit RewriteMap im RewriteRule Substitution URI

RewriteMap categories txt:/path/to/categories.txt 

RewriteCond %{QUERY_STRING} dispatch=categories.view&category_id=(\d+) 
RewriteRule ^index.php$ /index.php?route=product/category&path=${categories:%1} [R,L] 

Und in der Datei categories.txt, würden Sie haben eine Zuordnung von alten zu neuen Kategorie-IDs könnte zu erfassen

1430 1746 
123 456 
987 333 

Siehe auch txt: Plain text maps für weitere Details oder Alternativen zu Klartext ma Ansprachen.

Der Nachteil dieser Methode, Sie können es nicht in einer. Htaccess-Datei verwenden, nur in der Hauptkonfiguration oder virtuellen Host-Abschnitt.


Wenn alles funktioniert, wie es sollte, können Sie R-R=301 ändern.

+0

Hallo Olaf und danke! Ich habe das folgende hinzugefügt, aber ich bekomme einen 500 internen Serverfehler. Der Code lautet wie folgt: '# RewriteMap-Kategorien txt: /httpdocs/newsite/htaccess/rewrite_categories.txt #RewriteCond% {QUERY_STRING} dispatch = Kategorien.Ansicht & Kategorie_ID = (\ d +) #RewriteRule^index.php $/index ? .php route = Produkt/Kategorie & path = $ {Kategorien:% 1} [R, L] ' – Konstantinos

+0

auch mein htaccess_categories.txt ist das folgende Format, wie Sie vorgeschlagen:' 451 1764 2157_2176 432 2157_2176 1450 2157_2176 552 2157_2176 1264 2157_2176 697 2157_2176 873 2157_2176 688 2157_2176' – Konstantinos

+0

Entschuldigung, ich habe verpasst, dass Sie 'RewriteMap' nicht in .htaccess-Dateien verwenden können, nur im Hauptkonfigurations- oder virtuellen Host-Bereich. Ich habe die Antwort entsprechend aktualisiert. –