nginx rewrite-redirect für einen Ordner
alles...
Ich versuche, etwas zu tun, in der nginx umleiten alle Anrufe für Dateien in
/images/
werden in:
/assets/images/
kann mir jemand helfen mit der rewrite-Regel? Angabe eines 301 moved permanently-status?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist der bevorzugte Weg, dies zu tun mit den neueren Versionen von Nginx:
Sehen https://www.nginx.com/blog/creating-nginx-rewrite-rules/ für mehr info.
~
für? Und die^
? Würde es funktionieren mit$request_uri
statt$1
?~
(tilde) sagt, dies ist die groß- / Kleinschreibung bei regex. Ansonsten, URLs für/Images
und/imAgEs
würde passen. Wenn dies das gewünschte Verhalten, dann machen Sie es groß-und Kleinschreibung mit~*
.^
(caret-Zeichen) auf der Vorderseite des regex verankert Sie an den Anfang der Zeile. Ohne es, URLs wie/some/plugin/images/blah.jpg
würde auch passen.location /images/ {return 301 /assets$request_uri;}
funktionieren würde. Wenn der redirect funktioniert alles andere als voranstellen, um das ursprüngliche Verzeichnis, jedoch (z.B./images
->/pics
), die regex-und die$1
noch notwendig sind.Fügen Sie unter Konfiguration in Ihrem nginx.conf
return 301
statt umschreiben bevorzugt wird ( nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/... ), siehe die Antwort von @gsf