Par exemple vos anciennes urls utilisaient l'underscore (article_37_mes_vacances_en_suisse.html) et vous préférez utiliser le trait d'union (article-37-mes-vacances-en-suisse.html) dans vos nouvelles urls.
Vous pouvez le faire en PHP, mais il y a plus simple et efficace avec le fichier htaccess.
RewriteRule ^article(.*)_(.*) /$1-$2 [N,R=301,L]
Cette expression va remplacer tous les caractères _ par - pour les url qui contiennent le mot article.
[N,R=301,L]
Cette règle utilise trois drapeaux :
- Le drapeau [N] fonctionne comme une boucle while et va répéter l'instruction tant que c'est possible (limité à 32000 boucles depuis Apache 2.4.8)
- Le drapeau [R=301] renvoi une redirection de type 301 pour indiquer que la page a été déplacée de façon permanente.
- Le drapeau [L] stop le traitement des règles suivantes