C'est pour ça que je disais que je ne comprenais pas la question. Globalement, tu as 2 solutions : soit faire comme font la plupart des CMS type Drupal : rediriger toutes les URL vers un unique script (index.php) qui fait le découpage de l'URL pour trouver la lange, la page demandée, etc. ; soit partir sur ta solution avec Apache qui fait le découpage.
Si on part sur ta solution, le nom de la page étant issue d'une base de données, on en revient généralement à avoir cette partie "page" qui est la même quelque soit la langue suivi de ([a-z]+) qui correspond à la langue. C'est quasi incontournable si cette partie "page" est utilisée dans un paramètre d'URL (le paramètre "section"). Je pense que tu n'auras pas beaucoup d'autre choix si tu ne veux pas modifier le .htaccess à chaque nouvelle page.
Pour la partie langue, tout ce qu'il faut c'est qu'Apache puisse la reconnaître sans problème. Le ([a-z]+) est pas mal mais on peut aussi utiliser une syntaxe qui me semble pas mal : (langue1|langue2|langue3|...).
Au final, si on fait la synthèse des 2, on tombe sur la règle suivante :
RewriteRule ^(.*)-(fr|en|km)$ index.php?section=$1&lang=$2 [L]
C'est la version générique de ma première réponse : tu auras les URL emailing-fr, emailing-en et emailing-km.
Pour pouvoir gérer envoi-emailing-fr uniquement (et pas envoi-emailing-en par exemple), tu as deux possibilités :
- Coder en dur l'URL dans le .htaccess. C'est pas hyper flexible.
- Gérer cette impossibilité par le code dans index.php.
Partager