根据浏览器语言提供不同的文件

win*_*yer 6 nginx

假设我有一个文件en/index.html和一个文件,de/index.html我想将该de/index.html文件提供给在浏览器中将德语作为默认语言设置的用户以及我想提供该en/index.html文件的所有其他人。

如何在正常的 nginx 配置范围内做到这一点?

win*_*yer 4

最简单的方法是:

set $first_language $http_accept_language;
if ($http_accept_language ~* '^(.+?),') {
  set $first_language $1;
}

set $language_suffix 'en';
if ($first_language ~* 'de') {
  set $language_suffix 'de';
}

location / {
  try_files $uri/$language_suffix/index.html $uri $uri.html;
}
Run Code Online (Sandbox Code Playgroud)