如何编写nginx配置文件以允许3种语言切换。

如何编写nginx配置文件以允许3种语言切换。,nginx,config,modx,winginx,Nginx,Config,Modx,Winginx,由此,它解释了如何编写nginx config在DE和EN之间切换语言。使用Modx作为CMS。但是,我有3种语言,它们是EN/DA/TH。请指导我如何正确编写nginx配置以在3种语言之间进行更改。(请注意,EN为默认值) 以下是仅允许两种语言切换的nginx配置 set $lang de; # choose the language that appears first in the accept_language header if ($http_accept_language ~* "(

由此,它解释了如何编写nginx config在DE和EN之间切换语言。使用Modx作为CMS。但是,我有3种语言,它们是EN/DA/TH。请指导我如何正确编写nginx配置以在3种语言之间进行更改。(请注意,EN为默认值) 以下是仅允许两种语言切换的nginx配置

set $lang de;
# choose the language that appears first in the accept_language header
if ($http_accept_language ~* "(de|en)") {
  set $lang $1;
}
location ~ ^/$ {
rewrite ^ $lang/ redirect;
}

location ~ ^/(de|en) {
# redirect favicon.ico and assets/* requests to site root
rewrite ^/(de|en)/(favicon.ico|assets.*)$ /$2 redirect;
# main Babel rewrite
rewrite ^/(de|en)/(.*)$ /?cultureKey=$1&q=$2 break;
# MODX rewrite
try_files $uri $uri/ @modx-rewrite;
}

location / {
  try_files $uri $uri/ @modx-rewrite;
}

您是否尝试过将
(de|en)
替换为
(en|da|th)
?是的。但它似乎不起作用。即使url有da或th,它也会重定向到“EN”。modx rewrite中的内容是什么?处的示例特定于modx云。除了nginx配置之外,还需要更改插件以接受不同的CultureKey。