it-swarm.com.de

.htaccess-Regel zum Umleiten von URLs in einer neuen Struktur

Die alten URLs hatten die Form:

https://www.example.com/collection/item/item-name-123

Die neuen URLs haben die Form:

https://www.example.com/collection/item/123

Ich versuche, Zugriffe auf umzuleiten
https://www.example.com/collection/item/item-name-123 zu https://www.example.com/collection/item/123, aber ich kann die .htaccess-Regel anscheinend nicht verstehen.

Was ich ausprobiert habe ist:

RewriteRule ^(.*)/item/(.*)-([0-9]+)$ $1/item/$3 [R=301]

Welches scheint nicht zu funktionieren. Vermisse ich etwas Einfaches?

1
Gary

Vermisse ich etwas Einfaches?

Sie benötigen das Flag L (um die weitere Verarbeitung zu verhindern), und diese Anweisung sollte sich ganz oben in Ihrer vorhandenen .htaccess-Datei befinden (dh vor dem Abschnitt # BEGIN WordPress).

Sofern Sie nicht bereits eine entsprechende RewriteBase-Direktive definiert haben (der WordPress Front-Controller hat dies normalerweise), müssen Sie dem Ersetzung String auch einen Schrägstrich voranstellen (obwohl dies ohnehin empfohlen wird) externe Weiterleitungen).

Andernfalls sollten Ihr regulärer Ausdruck und Ihre Ersetzungszeichenfolge in Ordnung sein.

Mit anderen Worten, am Anfang Ihrer Datei:

RewriteRule ^(.*)/item/(.*)-([0-9]+)$ /$1/item/$3 [R=302,L]

Testen Sie mit 302 (temporären) Weiterleitungen (um Caching-Probleme zu vermeiden) und wechseln Sie nur dann zu einer 301, wenn Sie bestätigt haben, dass sie wie vorgesehen funktioniert.

Sie müssen vor dem Testen Ihren Browser-Cache leeren.

1
MrWhite