具有多个子目录的 nginx 位置(django i18n)

nginx location with multiple subdirectories (django i18n)

我有这个服务器,我在其中使用 django i18n 用于几种语言,但我无法让 nginx 使用相同的位置为这些目录提供服务。

location /(fr|en|ko|de)/ {
    proxy_pass http://127.0.0.1:8005;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    add_header P3P 'CP=ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}

但这不起作用,无法满足来自这些网址的请求。

似乎唯一可行的解​​决方案是我制作 4 个位置块的解决方案,但这不是最佳解决方案...

那么,真正的解决方案是什么?

您混淆了前缀位置和正则表达式位置的语法。

您需要指定一组语言,因此需要一个正则表达式。

正确的表达方式是:

location ~* ^/(fr|en|ko|de)/ { ... }

详情见this document