HTACCESS rewrite klappt nicht

Hallo Community,

wir sind vor Kurzem auf Shopware umgestiegen und haben jetzt ein Problem mit der Umleitung der alten pagination. Dies wollte ich nun über die HTACCESS lösen aber irgendwie bekomme ich es nicht hin das die URL weitergeleitet wird. 

Die alten ULR hatten bei der pagination immer den Zusatz “_s2” je nach seiten anzahl bis “_s10” Quasi www.Shop.de/Kategorie_s2 Shopware geht ja mit der pagination anderes um. Damit die Alten Shopseiten aber nicht immer in der 404 Landen wollte ich über dies anpassen.

Folgendes habe ich in die htaccess geschrieben:

RewriteCond %{QUERY_STRING} ^_s$
RewriteRule ^(.*)$ /$1? [R=301,L]

nur leider wird da nichts weitergeleitet. Gibt es noch etwas zu beachten oder ist der Rewrite Befehl falsch?

Hilfe wäre echt super. Vorab schonmal vielen Dank

 

Ungetestet:

RewriteCond %{QUERY_STRING} ^_s(\d+)$

 

leider nein so geht es auch nicht. Bin aber auch noch nicht schlauer geworden woran es hängt.

Poste doch mal ein Beispiel einer alten URL und auf welche sie umleiten soll. Ich denke das QUERY_STRING passt nicht, aber um das beurteilen zu können wäre ein konkretes Beispiel gut.

 

Hallo,

hier das Beispiel:

https://www.werkzeugdiscount24.de/werkzeug-werkstattbedarf_s2 soll werden zu Werkstattbedarf günstig online kaufen | Werkzeugdiscount24.de

die URL mit_s2 führt somit immer auf 404 Seite und dies soll halt für die alten Links abgestellt werden. Dies betrifft jede Kategorie bei uns.

Dann vielleicht so:

RewriteRule ^(.*)_s(\d+)$ /$1 [R=301,L]

 

Die Variante

RewriteCond %{QUERY_STRING} ^_s$

kann nicht gehen, wenn dort ein ^ am Amfang steht. Das würde bedeuten, der String geht mit _s los, was aber nicht der Fall ist.

Auch das ist leider bei mir ohne erfolg.

Habe auch schon folgendes probiert da ich ja eine Lösung suche:

RewriteCond %{REQUEST_URI} ([^/]+)_s.* RewriteRule ^(.\*) /%1 [R=301,L]

aber egal was ich in die htaccess schreibe es passiert nichts. Kann es sein das man dann auch den Shopcache usw leeren muss? Oder ist da im Hintergrund noch was anderes im Shop was mit eingreift?

Aber danke für die Mühe. Das mit den RewriteCond und Rule ist schon eine Sache für sich Foot-in-Mouth.

Hm, ich habe mein Beispiel auf einem Testsystem probiert und macht dort genau was es machen soll. Mit dem Shopcache hat das rein gar nichts zu tun, aber ggf. mit dem Browser-Cache. Eventuell diesen mal leeren bzw. den Browser schließen und neu öffnen.

Hast Du die SEO-Router-Config geändert? Im Default enden bei Shopware die Links auf Kategorien auf /.
Wenn das noch so eingestellt ist, landet ein Redirect auf “ohne” /  bei SW im 404
Also entweder Router-Einstellung auf “ohne /” umstellen oder Redirect auf “/” machen.

Also nochmal für mich du hast es so gemacht:

RewriteCond %{QUERY_STRING} ^_s(\d+) RewriteRule ^(.\*)\_s(\d+) /$1 [R=301,L]

oder brauche ich den Cond nicht mehr. Da es neu für mich ist, ist es halt noch etwas kompliziert.

Nein, du verdrechst alles. Die Zeile mit RewriteCond nimmst du raus und nimmst nur die zweite Zeile.

1 „Gefällt mir“
 ^_s(\d+)$

Kann nicht greiffen, da es davon ausgeht, dass die ganze Zeichenkette mit _s  anfangen würde, tut es aber nicht :slight_smile:

RewriteRule ^(.*)_s(\d+)$ /$1 [R=301,L]

Ohne RewriteCond, weil die Cond 1) in der Rule ist und 2) verhindert, dass die Rule greift - aber wie geschrieben: Darauf achten, dass die Kategorie von SW dann auch ohne „/“ generiert wird, sonst eben noch den / in die Rule einbauen.

Und wenn mit RewriteCond, muss die Condition von der Bedingung her gleich der Rule sein
 

RewriteCond %{QUERY_STRING} _s(\d+)$
RewriteRule ^(.*)_s(\d+)$ /$1 [R=301,L]

 

Dank R4M hat jetzt alles geklappt und es ging echt schnell mit dem support in dem Forum. Super.

Support ist das hier keiner, eher Entspannungsübung in der Pause.