NGINX i18n без изменения URL - PullRequest
0 голосов
/ 27 марта 2020

Интересно, как перенаправить трафик 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;
  }
}
...