Nginx
nginx總結類似的目錄路徑
我一直在嘗試使用我的 nginx 設置來阻止對任何不需要的目錄的訪問,但是每次添加一些目錄時添加幾行新行對我來說真的很煩人。我一直在看幾個論壇,但所陳述的語法似乎都不起作用。我已經嘗試過 syntax
^~ /(dir|dir2)/
,^~ (/dir|/dir2)/
等^~ (/dir/|/dir2/)
,但就像我說的那樣,這些都不起作用,唯一的解決方案似乎是限制每個目錄,這看起來真的很糟糕恕我直言。如果您了解任何可能在這種情況下起作用的語法,我將非常感謝任何形式的回答。
作業系統:Debian GNU/Linux 10 (buster) nginx 版本:nginx/1.14.2
location ^~ /includes/ { deny all; return 403; } location ^~ /vendor/ { deny all; return 403; } location ^~ /packages/ { deny all; return 403; } location ^~ /res/ { deny all; return 403; } location ^~ /styles/ { deny all; return 403; }
這
^~
意味著 nginx 將始終使用前綴匹配,而不檢查正則表達式。要使用正則表達式進行匹配,您需要使用:
location ~ ^/(?:includes|vendor|packages|res|styles)/ {
~
告訴 nginx 這是一個正則表達式^
匹配請求字元串的開頭/
匹配 URI 開始斜杠()
通常聲明一個擷取組。但是,?:
阻止擷取|
在組內用作“或”。