Il semble que le problème que tu rencontre est dû à la manière dont tu as défini tes règles de réécriture dans le fichier .htaccess. Lorsque tu as deux règles qui ont la même structure de correspondance (le même modèle d'URL), seule la première règle est prise en compte, ce qui explique pourquoi tu ne vois pas le comportement attendu pour les deux types de redirections.
Pour résoudre ce problème, tu peux ajuster tes règles de réécriture en utilisant des modèles d'URL distincts pour chaque type de redirection. Voici comment tu pourrais le faire :
Avec ces règles de réécriture, tu utilises des préfixes différents ("news-" et "formation-") pour les deux types de redirections. Cela permet au serveur web de distinguer les deux règles et d'appliquer la redirection appropriée en fonction du préfixe de l'URL.
Ensuite, dans ton code PHP, tu peux utiliser les liens avec les préfixes correspondants :
ou
Avec cette approche, tu éviteras les conflits entre les règles de réécriture et tu obtiendras le comportement souhaité pour les redirections.