
我已經使用 Apache 的 Web 伺服器超過 15 年了,我想給新人一個機會。 ;) 為了簡潔起見,我一直在嘗試調整我的 NGINX 設定檔。
該網站通常會將所有流量重寫到特定的index.php
,但我有兩個目錄privacy
並且eula
其中包含單獨的index.php
,因此對於這兩個目錄,我希望它只調用目錄中的檔案。
例如:
location ~ /(privacy|eula) {
try_files $uri $uri/ =404;
}
導致我的瀏覽器將頁面內容下載為 .dms 檔案。
如果我將位置分成兩部分,如下所示:
location /privacy {
try_files $uri $uri/ =404;
}
location /eula {
try_files $uri $uri/ =404;
}
它按預期工作。
我進行了搜索,也發現了這樣做的建議,但這具有相同的效果location ~ ^/(privacy|eula)
。我是否必須接受 NGINX 非常冗長的事實,或者我做錯了什麼?
謝謝
答案1
這正規表示式 location
區塊按順序進行評估,直到找到匹配項。
在您的情況下,您已將其放置在區塊location ~ /(privacy|eula)
上方location ~ \.php$
,這樣 URI 這樣的 URI/eula/index.php
就不會被正確的位置處理,而是會被下載。
放置location ~ /(privacy|eula)
塊後塊location ~ \.php$
。
看這個文件了解詳情。