
Eu tenho uma pasta de localização que contém vários arquivos de idioma (como JSON) e meu webapp tenta ler o idioma do navegador para buscar o arquivo JSON correspondente.
Em certos cenários, o arquivo de idioma correspondente não existe e o nginx retorna 404 como deveria. No entanto, gostaria de retornar um redirecionamento temporário para o arquivo de idioma padrão.
Eu tentei isso, mas não parece funcionar. O que estou fazendo de errado?
location /static/l10n {
try_files $uri @missing_language;
}
location @missing_language {
rewrite ^ /static/l10n/en-us.json break;
}
EDITAR 2: Então tentei ajustar try_files
um pouco assim.
location /static/l10n {
try_files $uri /static/l10n/en-us.json;
}
Mas agora recebo um erro 500. Os registros dizem *35 rewrite or internal redirection cycle while internally redirecting
.
EDITAR 3: Minha configuração completa do nginx está aqui -https://gist.github.com/paambaati/9782e95b2e9af899b154
Responder1
Usarerror_page
Para usar um determinado arquivo como resposta 404 - usepágina_erro:
location /static/l10n {
error_page 404 = /static/l10n/en-us.json;
}
Observe o uso de =
para servir /static/l10n/en-us.json
como http 200.