Salut
Pas d'bol, j'ai aucune solution à ton problème ... ça commence mal
Mias je te dire franchement ... il vaudrait mieux abandonner cette idée de vouloir mettre des tirets comme séparateur aussi à la place des apostrophes, etc ...
En faite SEO remplace en premier les caractères spéciaux comme les àéèçù... et supprime tout le reste, donc ne conserve que les 26 lettres de l'alphabet. C'est bien mieux ainsi, ça évite les mauvaises surprises.
Ensuite le tiret fait partie prenante des règles de réécriture qu'exploite SEO :
RewriteRule ^(.*)
-p-(.*).html$ -> pour une page produit
RewriteRule ^(.*)
-c-(.*).html$ -> pour une page catégories
etc ...
Vouloir changer tout ça, pour permettre les tirets c'est surement possible, mais je ne suis pas certain que le coup vaut la chandelle ...
A chaque nouvelle version/mise à jour de SEO va falloir se taper toutes les modifs, rien que ça suffit pour s'en passer.
Après il y a une réflexion à avoir, se poser la question : A quoi sert ces réécriture ?
Bien souvent on se focalise à vouloir obtenir une URL compréhensible, bien faite, lisible comme sur du papier.
Et bien là je dirait que l'on fait erreur, car si on regarde les utilisateurs lambda (les clients en faites), et bien ils en ont rien affaire de cette URL dans la barre d'adresse, mais alors rien du tout ... (ou franchement pas grand monde, pour mettre une réserve)
C'est bien souvent une lobby que l'on fait soit même, car on a un oeil averti sur ce point ...
Les règles d'écriture sont avant tout faites pour les moteurs de recherche (du moins, surtout), et les URLs dynamiques du genre :
ma_page.php?id=machin&truc=bidule causent problèmes.
Ce n'est pas du tout conforme pour stocker ces URLs dans un fichier XML (ou pour en produire), ça plante méchamment.
Créer un siteMap XML bien structuré par exemple.
Créer des flux RSS (XML encore) bien fait, bien construit aussi, etc ...
Après il y a toute une histoire sur l'unicité des pages, duplicate contente, etc ...