Bonsoir,
Pour résumer, j'ai donc installé nginx sur un de mes vps, la langue par défaut du site (example.com) serait le français mais j'aimerais lui ajouter une redirection automatique vers sa partie anglaise (example.com/en).
La langue dans lequel le navigateur de la personne parcourant le site serait configurée permettrait cette redirection ou non.
J'ai alors ajouté ceci dans le fichier de configuration de mon server block :
location = / {
rewrite_by_lua '
for lang in (ngx.var.http_accept_language .. ","):gmatch("([^,]*),") do
if string.sub(lang, 0, 2) == "fr" then
return
end
if string.sub(lang, 0, 2) == "en" then
ngx.redirect("/en/")
end
end
ngx.redirect("/")
';
}
Ça semble correctement fonctionner à une exception près.
Même si le français est la langue par défaut dans Chrome mais qu'elle est en dessous de l'anglais, cela redirige vers la partie anglaise (1ère image) et lorsque le français est au dessus cela fonctionne correctement (2ème image).
Après, dernier point, je ne suis pas non plus certain que ce soit véritablement correct, notamment concernant le dernier "ngx.redirect("/")", ou alors y a-t-il mieux à faire ?
En espérant que certains d'entre vous auront une idée, merci par avance.
Édition : Ah oui, j'oubliais, si jamais, je ne souhaite pas faire une redirection en fonction de la géolocalisation.
Dernière modification par Minuit ; 14/06/2016 à 01h27.
|