Интересно, как перенаправить трафик c на основе языка браузера, используя NGINX без изменения URL .
Вот моя файловая структура:
? en
|- ? index.html
? fr
|- ? index.html
Я следовал этому уроку , который работает, как и ожидалось, например, /home
перенаправлен на /en/home
.
Теперь можно ли сделать то же самое, не меняя URL адресной строки?
Вот мой NGINX конфиг:
server {
listen 80;
server_name localhost;
location /en/ {
alias /usr/share/nginx/html/en/;
try_files $uri$args $uri$args/ /en/index.html;
}
location /fr/ {
alias /usr/share/nginx/html/fr/;
try_files $uri$args $uri$args/ /fr/index.html;
}
set $first_language $http_accept_language;
if ($http_accept_language ~* '^(.+?),') {
set $first_language $1;
}
set $language_suffix 'en';
if ($first_language ~* 'fr') {
set $language_suffix 'fr';
}
location / {
rewrite ^/$ /$language_suffix/index.html permanent;
}
}