
Tengo una carpeta de localización que tiene un montón de archivos de idioma (como JSON) y mi aplicación web intenta leer el idioma del navegador para buscar el archivo JSON correspondiente.
En ciertos escenarios, el archivo de idioma correspondiente no existe y nginx devuelve un 404 como debería. Sin embargo, me gustaría devolver una redirección temporal al archivo de idioma predeterminado.
Intenté esto, pero no parece funcionar. ¿Qué estoy haciendo mal?
location /static/l10n {
try_files $uri @missing_language;
}
location @missing_language {
rewrite ^ /static/l10n/en-us.json break;
}
EDITAR 2: Así que intenté modificarlo try_files
un poco así.
location /static/l10n {
try_files $uri /static/l10n/en-us.json;
}
Pero ahora aparece un error 500. Los registros dicen *35 rewrite or internal redirection cycle while internally redirecting
.
EDITAR 3: Mi configuración completa de nginx está aquí -https://gist.github.com/paambaati/9782e95b2e9af899b154
Respuesta1
Usarerror_page
Para utilizar un archivo determinado como respuesta 404, utilicepágina_error:
location /static/l10n {
error_page 404 = /static/l10n/en-us.json;
}
Tenga en cuenta el uso de =
para servir /static/l10n/en-us.json
como http 200.