
У меня есть папка локализации, в которой находится множество языковых файлов (в формате JSON), и мое веб-приложение пытается прочитать язык браузера, чтобы получить соответствующий файл 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;
}
Обратите внимание на использование =
для обслуживания /static/l10n/en-us.json
http 200.