301-Weiterleitung via .htaccess, fehlender /

Hallo,

ich habe eine kurze Frage:
wir haben bei Shopware eine htaccess eingebaut, die alte Links auf die neuen weiterleiten soll, so:

RewriteRule ^index.php?id=228 https://www.domain.com/kategorie/blogartikel [L,NE,R=301]

Leider gibt das Ergebnis folgendes:

https://www.domain. comkategorie /blogartikel/

Da fehlt also ein /, wenn ich aber die htaccess so ändere: ^/index.php? bringt das gar nichts und soll zudem verkehrt sein laut Recherche.

Wir haben auch schon andere Formulierungen versucht wie
Redirect 301 ^index.php?id=228 https://www.domain.com/kategorie/blogartikel [L,NE,R=301]
aber dann ging irgendwie gar nichts mehr…

Die Domain hat in Shopware ja keinen / am Ende, einen einzubauen zerschießt alles.

Weiß jemand, was da verkehrt läuft?

Mit freundlichen Grüßen

push… immer noch auf der Suche nach einer Antwort… :slight_smile:

Gibt es evtl. noch irgendwo eine übergeordnete .htaccess, die den Schrägstrich nach der TLD entfernt?

Das wurde ja gelegentlich so eingebaut, um Seiten, die Shopware fälschlicherweise mit Schrägstrich aufrufen, umzuleiten. Das dürfte man dann nur am Ende der URL machen und nicht am Ende der TLD.

Hallo drakon,

danke für deine Antwort! Aber nicht, dass ich wüsste. Eine übergeordnete .htaccess ist nicht vorhanden, also kann es höchstens in derselben Datei stehen (die ist ziemlich lang) oder irgendwo eine Einstellung in Shopware…?

Haben denn andere Shops einen / am Ende?

Ich kenne keine. Aber da kursierten einige Anleitungen im Netz zu dem Thema. Nur zur Sicherheit noch. Eine .htaccess kann wirksam auch oberhalb des Webstammordners auf dem Webserver eingerichtet sein.

In Shopware gibt es dazu meines Wissens nach keine direkte Einstellung.

In der RewriteRule ist mindestens ein Fehler. Das Fragezeichen muss escaped werden. Stichwort Reguläre Ausdrücke.

Aber da du scheinbar keine Bestandteile der alten Url brauchst, bleibe bei Redirect. Dort können aber keine Parameter verwendet werden.

Redirect 301 /index.php?id=228 https://www.domain.com/kategorie/blogartikel

 

Also mit

Redirect 301 /index.php?id=228 https://www.domain.com/kategorie/blogartikel

gibt es keine Fehlermeldung, es tut aber auch nicht. Den Shopcache und alles andere habe ich vorsichthalber geleert.

Das heißt, Weiterleitungen mit Text-Links gehen, also /Unterkategorie/Artikel leitet auf /Oberkategorie/Unterkategorie/Artikel, aber nicht die Weiterleitungen mit ?id…