我有一个本地化文件夹,其中包含一堆语言(作为 JSON)文件,我的 web 应用程序尝试读取浏览器的语言来获取相应的 JSON 文件。
在某些情况下,相应的语言文件不存在,nginx 会返回 404,这是理所当然的。但是,我想返回一个临时重定向到默认语言文件。
我试过了,但似乎不起作用。我做错了什么?
location /static/l10n {
try_files $uri @missing_language;
}
location @missing_language {
rewrite ^ /static/l10n/en-us.json break;
}
编辑2:所以我尝试try_files
像这样进行一些调整。
location /static/l10n {
try_files $uri /static/l10n/en-us.json;
}
但现在我收到 500 错误。日志显示*35 rewrite or internal redirection cycle while internally redirecting
。
编辑3:我的完整 nginx 配置在这里 -https://gist.github.com/paambaati/9782e95b2e9af899b154
答案1
使用error_page
要使用给定文件作为 404 响应 - 使用错误页面:
location /static/l10n {
error_page 404 = /static/l10n/en-us.json;
}
请注意用作=
http /static/l10n/en-us.json
200。