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 :
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 :
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 !
Partager