Sie könnten Alias verwenden, einfach so:
location /doc { alias /sites/mysite/proj/doc/; }
Ich bin ziemlich neu in Nginx-Configs. Ich habe Probleme mit einem ziemlich grundlegenden Problem. Ich möchte einige statische Dateien unter / doc (index.html, einige Bilder usw.) hosten. Die Dateien befinden sich in einem Verzeichnis namens / sites / mysite / proj / doc /.
Das Problem ist, dass nginx mit der folgenden nginx config nach einem Verzeichnis mit dem Namen "/ sites / mysite / proj / doc / doc" sucht. Möglicherweise kann dies behoben werden, indem das Stammverzeichnis auf / sites / mysite / proj / gesetzt wird. Ich möchte jedoch nicht andere (nicht statische) Assets im Verzeichnis proj / offenlegen. Aus verschiedenen Gründen kann ich das doc / -Verzeichnis nicht wirklich von dort verschieben, wo es ist.
Ich denke, es gibt eine Möglichkeit, eine Rewrite-Regel zu verwenden, um diese Situation zu lösen, aber ich verstehe nicht wirklich alle Teile und habe daher Schwierigkeiten, die Regel zu formulieren.
rewrite ^/doc/(.*)$ /$1 permanent;
Ich habe auch ein funktionierendes Beispiel für das Hosten von Dateien aus einem Verzeichnis / sites / mysite / htdocs / static / beigefügt.
> vim locations.conf location /static { root /sites/mysite/htdocs/; access_log off; autoindex on; } location /doc { root /sites/mysite/proj/doc/; access_log on; autoindex on; } 2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server:, request: "GET /doc HTTP/1.1", host: "myhost.com"
Hat jemand eine Idee, wie ich diesen statischen Inhalt bereitstellen könnte?
Sie könnten Alias verwenden, einfach so:
location /doc { alias /sites/mysite/proj/doc/; }