Shopware Kategorie URLs korrekt umleiten

Sicher ist dem einen oder anderen auch schon aufgefallen, dass Shopware 6 alle Kategorien mit einem Slash beendet. Also https://www.meine-seite.de/garten/ und nicht https://www.meine-seite.de/garten

Das macht auch durchaus Sinn, da Google so z.B. Kategorien von Dokumenten (welche ja keinen / am Schluss bekommen) besser einordnen kann.

Das Problem: Gebt mal eine Kategorie ohne / ein. Seht Ihr was ich meine? Ihr erhaltet eine 404-Fehlermeldung. Problematisch wird es dann, wenn Ihr z.B. bei einem Preisvergleichsportal, oder einem anderen Dienst angemeldet seid und dieser beim crawlen Eurer Seite automatisch den / eliminiert. Genau das passierte mir nun nämlich bei einem Chat-Bot Anbieter. Viele meiner Seiten können darum nicht korrekt importiert werden. Dieses Problem bestand bereits bei Shopware 5 und hat z.B. den folgenden Anbieter zu einem längeren Tutorial veranlasst: https://great2gether.com/2021/08/shopware-kategorie-urls-korrekt-umleiten/

Meine Frage ist nun, wie gehe ich in Shopware 6 dieses Problem an? Die Kategorie-URLs werden ja unter Einstellungen/SEO mit folgendem Befehl generiert (zumindest bei mir): {% for part in category.seoBreadcrumb %}{{ part | lower }}/{% endfor %}

Den / vor /{% endfor %} zu entfernen bringt in diesem Fall nicht viel, da somit auch jeder andere entfernt wird.

Ich habe es deshalb mal so versucht: {% for part in category.seoBreadcrumb %}{{ part | lower }}{% if not loop.last %}/{% endif %}{% endfor %} was zwar in der Vorschau den Slash entfernt, jedoch im Frontend nicht die gewünschte Lösung brachte.

Deshalb meine Frage: Wer weiss wie man dieses Problem lösen kann?

Hat mir da mal jemand einen Tipp?

Nach meiner Logik hätte folgender Zusatz an meine .htaccess doch eigentlich die Umleitung bewirken müssen. Geht aber leider nicht. :thinking:

# Umleitung von URLs ohne Schrägstrich am Ende auf URLs mit Schrägstrich
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*/[^/]+)$ $1/ [L,R=301]

Kennt sich hier wirklich keiner damit aus? Mir wars fast etwas peinlich diese Frage zu stellen, weil ich vermutete, dass die Lösung fast schon banal wäre. Aber offensichtlich bin ich doch nicht ganz so deppert, wenn auch die Experten unter Euch ratlos sind. :slightly_frowning_face:

Eigentlich dürfte es doch nicht sein, dass ein vergessener / gleich eine 404 Fehlermeldung auslöst. Da müsste es doch standardmässig eine Weiterleitung geben. So hoffe ich nun einfach doch noch jemanden zu finden, der mir da einen Tipp in die richtige Richtung geben kann.

Es gibt ein Plugin im Store, das hier Abhilfe schafft. Ansonsten ist dein Ansatz mit der .htaccess richtig, solange du Apache und nicht nginx nutzt.

Google gibt bspw. das hier aus: php - Htaccess: add/remove trailing slash from URL - Stack Overflow

1 „Gefällt mir“

Läuft auf nginx deshalb habe ich Dein Weg gefahren. Und zwar mit folgendem Plugin (es gibt zwei)

Das Plugin ist super, hat sogar noch eine fehlertollerante Umleitung eingebaut. D.h. wenn sich mal jemand vertippt, kommt er trotzdem zum richtigen Produkt. :slight_smile:

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.