J’ai le code suivant:
test.php
"This is a test.","it"=>"Questo è un test."); echo $content[$lang]; } ?>
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^\.localhost$ RewriteRule (.*) - [QSA,E=LANG:%1] RewriteRule (.*) $1?lang=%{ENV:LANG} [QSA]
Si $ _GET [‘lang’] n’est pas défini, récupère la langue de l’utilisateur à partir des en-têtes envoyés par son navigateur et les redirige vers le sous-domaine correspondant à leur langue: le sous-domaine doit coïncider avec $ _GET [‘lang’].
En visitant localhost / test.php, je suis redirigé vers le bon sous-domaine, mais la redirection se poursuit sans fin. De plus, si je visite en.localhost / test.php et que ma langue est l’italien, je suis redirigé vers it.localhost / test.php avant la boucle.
Comment puis-je résoudre ce problème?
Vous pouvez utiliser:
RewriteEngine On RewriteBase / RewriteCond %{HTTP:Accept-Language} ^([az]{2}) [NC] RewriteRule ^ - [E=LANG:%1] RewriteCond %{QUERY_STRING} !(?:^|&)lang= [NC] RewriteCond %{HTTP_HOST} ^(?:[^.]+\.)?(localhost)$ RewriteRule (.*) http://%{ENV:LANG}.%1/$1?lang=%{ENV:LANG} [QSA,L,R=302]
Test.php :
"This is a test.","it"=>"Questo è un test."); echo $content[$lang]; ?>