web-dev-qa-db-fra.com

Redirection de toutes les publications après modification de la structure d'URL avec htaccess

Je recherche l'expression régulière .htaccess qui redirige l'ancienne structure vers la nouvelle. La raison pour laquelle je ne souhaite pas utiliser de plug-in est qu'ils ont souvent des résultats inattendus lorsque les mises à jour de WordPress ou que l'auteur les abandonne. J'ai besoin de quelque chose qui 301 rediriger pendant longtemps de manière fiable.

Ancien permalien:

https://domain.com/%category%/%postname%/

Nouveau Permalink:

https://domain.com/%post_id%/

Note: / Je ne suis pas sûr si la règle devrait considérer ceci mais. J'utilise également des types de publication personnalisés qui ajoutent leur slug à l'URL. Donc, la "catégorie" apparaît pour un "post" normal, mais sur CPT, c'est juste:

https://domain.com/%example-cpt-slug%/%postname%/

Je soupçonne qu'une bonne règle pourrait fonctionner dans les deux cas puisque /% category%/et /% exemple-cpt-slug%/sont quelque chose entre "/ /".

Ce que je ne sais pas, c'est comment vous pouvez spécifier le POST ID (% post_id% /) comme cible.

1
Michael Rogers

Dans Paramètres> Permaliens, votre structure personnalisée a été définie sur /%category%/%postname%/, non?

Maintenant, vous voulez définir (ou vous avez déjà défini) sur /%post_id%/, non?

Autant que je sache (et j'ai également testé), WordPress 301 redirige tous vos messages (du type de message "post") vers votre nouvelle structure personnalisée. Tu n'auras pas besoin de faire une chose.

Ainsi, si vous avez défini la structure personnalisée sur /%post_id%/, cela signifie que si quelqu'un accède à l'URL https://domain.com/my-category/my-post-slug, il sera redirigé vers https://domain.com/POST_ID.

Une fois que vous avez modifié votre structure personnalisée, même si vous modifiez également votre publication, WordPress le redirige toujours correctement.

Je ne sais pas à partir de quelle version WP cela est supposé fonctionner, mais pour mémoire, j'ai testé la version 4.7.

Si cela ne fonctionne pas pour vous, faites le moi savoir et je vous donnerai une autre solution.

En passant, je suppose que l'URL de votre site WordPress n'a pas changé, car dans votre question, vous venez d'utiliser domain.com .

0
filipecsweb