Ich muss eine Umschreiberegel für Nginx schreiben, damit, wenn ein Benutzer versucht, zu einer alten Bild-URL zu wechseln:
/images/path/to/image.png
und die Datei existiert nicht, versuche umzuleiten zu:
/website_images/path/to/image.png
NUR wenn das Bild in der neuen URL vorhanden ist, fahren Sie andernfalls mit der 404 fort. Die Version von Nginx auf unserem Host hat noch keine try_files.
Bitte nicht
if
in einem Standortblock verwenden. Es können schlimme Dinge passieren.$1
wird zum Dateinamen für den Versuch in der Direktive try_files, die für das vorgesehen ist, was Sie erreichen möchten.Dies ODER, schreiben Sie es einfach um, ohne es zu überprüfen. Wenn dieses Bild nicht vorhanden ist, erhalten Sie trotzdem eine 404.
quelle
try_files
noch“), für die Besucher Zukunft kommen hier, verdient diese Antwort mehr up-Stimmen.Sie könnten so etwas verwenden (ungetestet für Ihren speziellen Fall):
Dies ist im Grunde eine alternative Methode, um verschachtelte
if
Anweisungen zu schreiben , da Sie nicht in Nginx verschachteln können. Siehe hier für die offizielle Referenz zu diesem "Hack".quelle