
Ich habe einen Lokalisierungsordner mit einer Reihe von Sprachdateien (als JSON) und meine Webanwendung versucht, die Sprache des Browsers zu lesen, um die entsprechende JSON-Datei abzurufen.
In bestimmten Szenarien existiert die entsprechende Sprachdatei nicht und nginx gibt wie vorgesehen eine 404-Fehlermeldung zurück. Ich möchte jedoch eine temporäre Weiterleitung zur Standardsprachdatei zurückgeben.
Ich habe das versucht, aber es scheint nicht zu funktionieren. Was mache ich falsch?
location /static/l10n {
try_files $uri @missing_language;
}
location @missing_language {
rewrite ^ /static/l10n/en-us.json break;
}
BEARBEITEN 2: Also habe ich versucht, es try_files
ein wenig wie folgt zu optimieren.
location /static/l10n {
try_files $uri /static/l10n/en-us.json;
}
Aber jetzt bekomme ich einen 500-Fehler. Die Protokolle sagen *35 rewrite or internal redirection cycle while internally redirecting
:
BEARBEITEN 3: Meine vollständige Nginx-Konfiguration ist hier -https://gist.github.com/paambaati/9782e95b2e9af899b154
Antwort1
Verwendenerror_page
Um eine bestimmte Datei als 404-Antwort zu verwenden, verwenden SieFehlerseite:
location /static/l10n {
error_page 404 = /static/l10n/en-us.json;
}
Beachten Sie die Verwendung =
als /static/l10n/en-us.json
http 200.