Les anciennes URL étaient de la forme:
https://www.example.com/collection/item/item-name-123
Les nouvelles URL se présentent sous la forme:
https://www.example.com/collection/item/123
J'essaie de rediriger les hits surhttps://www.example.com/collection/item/item-name-123
à https://www.example.com/collection/item/123
mais je n'arrive pas à obtenir la règle .htaccess
.
Ce que j'ai essayé, c'est:
RewriteRule ^(.*)/item/(.*)-([0-9]+)$ $1/item/$3 [R=301]
Ce qui ne semble pas fonctionner. Est-ce que je manque quelque chose de simple?
Est-ce que je manque quelque chose de simple?
Vous avez besoin de l'indicateur L
(pour empêcher tout traitement ultérieur) et cette directive doit figurer tout en haut de votre fichier .htaccess
existant (c'est-à-dire avant la section # BEGIN WordPress
).
Sauf si vous avez déjà défini une directive RewriteBase
appropriée (WordPress front-controller a généralement cela), vous devez également préfixer la chaîne substitution par une barre oblique (bien qu'il soit recommandé de le faire quand même. redirections externes).
Sinon, votre expression rationnelle et votre chaîne de substitution devraient fonctionner correctement.
En d'autres termes, en haut de votre fichier:
RewriteRule ^(.*)/item/(.*)-([0-9]+)$ /$1/item/$3 [R=302,L]
Testez avec les redirections 302 (temporaires) (pour éviter les problèmes de mise en cache) et passez à un 301 uniquement lorsque vous avez confirmé qu'il fonctionne comme prévu.
Vous devrez vider le cache de votre navigateur avant de le tester.