
Nachdem ich seit über 15 Jahren den Apache-Webserver verwende, wollte ich dem Neuling eine Chance geben. ;) Ich habe versucht, meine NGINX-Konfigurationsdateien der Kürze halber zu optimieren.
Die Site schreibt den gesamten Datenverkehr im Allgemeinen in ein bestimmtes um index.php
, ich habe jedoch zwei Verzeichnisse privacy
und , eula
die einzelne s enthalten index.php
. Daher möchte ich, dass für diese beiden Verzeichnisse nur die Dateien in den Verzeichnissen aufgerufen werden.
Zum Beispiel:
location ~ /(privacy|eula) {
try_files $uri $uri/ =404;
}
bewirkt, dass mein Browser den Seiteninhalt als .dms-Datei herunterlädt.
Wenn ich den Standort wie folgt in zwei Teile aufteile:
location /privacy {
try_files $uri $uri/ =404;
}
location /eula {
try_files $uri $uri/ =404;
}
Es funktioniert wie vorgesehen.
Ich habe gesucht und auch den Vorschlag gefunden, es so zu machen, aber das hatte den gleichen Effekt location ~ ^/(privacy|eula)
. Muss ich einfach damit leben, dass NGINX sehr wortreich ist, oder was mache ich falsch?
Danke
Antwort1
Derregulären Ausdruck location
Blöcke werden der Reihe nach ausgewertet, bis eine Übereinstimmung gefunden wird.
In Deinem Fall hast Du location ~ /(privacy|eula)
den location ~ \.php$
Block so platziert, dass eine URI wie diese /eula/index.php
nicht von der richtigen Stelle verarbeitet wird und stattdessen heruntergeladen wird.
Platzieren Sie den location ~ /(privacy|eula)
Blocknachder location ~ \.php$
Block.
Sehendieses Dokumentfür Details.