Hello !

Je met en place un site multi-langue, et j'ai choisis la redirection via de faux sous dossiers "xxx.tld/fr/page" ou "xxx.tld/en/page"ou "xxx.tld/es/page.

J'ai donc mis en place une redirection via le htaccess, jusqu'ici pas de soucis.

Voici un extrait du htaccess :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
# empty url -> redirect to en/
RewriteCond %{QUERY_STRING} !lang=(fr|en|es)
RewriteRule ^$ fr/ [R=301,L]
# url is ONLY '/en' or '/de' -> redirect to /en/ or /de/ (adding slash)
RewriteRule ^(fr|en|es)$  $1/ [R=301,L]
# now all urls have en/ de/ -> parse them
RewriteRule ^(fr|en|es)/(.*)$  $2?lang=$1&%{query_STRING} [L]
Mais petit soucis ... La variable $_GET['lang'] n'est pas accessible sur une page dont l'URL est ré-écrite

J'ai de grosses lacunes sur la rédaction des règles htaccess, j'ai probablement trouvé la cause de ce soucis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
RewriteRule ^([a-zA-Z-]+)$   /serveur.php?serv=$1 [L]
Sur les pages ré-écrites comme via la règle ci-dessus, la premiere règle est annulée, et la variable $_GET['lang'] n'existe pas ...

Merci d'avance pour votre aide, et je reste à disposition s'il faut plus de code et/ou d'explication !