Nginx虛擬目錄alias和root目錄

2021-09-30 16:38:21 字數 980 閱讀 2991

nginx是通過alias設定虛擬目錄,在nginx的配置中,alias目錄和root目錄是有區別的:

1)alias指定的目錄是準確的,即location匹配訪問的path目錄下的檔案直接是在alias目錄下查詢的;

2)root指定的目錄是location匹配訪問的path目錄的上一級目錄,這個path目錄一定要是真實存在root指定目錄下的;

3)使用alias標籤的目錄塊中不能使用rewrite的break(具體原因不明);另外,alias指定的目錄後面必須要加上"/"符號!!

4)alias虛擬目錄配置中,location匹配的path目錄如果後面不帶"/",那麼訪問的url位址中這個path目錄後面加不加"/"不影響訪問,訪問時它會自動加上"/";

但是如果location匹配的path目錄後面加上"/",那麼訪問的url位址中這個path目錄必須要加上"/",訪問時它不會自動加上"/"。如果不加上"/",訪問就會失敗!

5)root目錄配置中,location匹配的path目錄後面帶不帶"/",都不會影響訪問。

舉例說明(比如nginx配置的網域名稱是www.wangshibo.com):

(1)location /huan/

如果乙個請求的uri是/t/a.html時,web伺服器將會返回伺服器上的/www/root/html/t/a.html的檔案。

alias例項:

location ^~ /t/

如果乙個請求的uri是/t/a.html時,web伺服器將會返回伺服器上的/www/root/html/new_t/a.html的檔案。注意這裡是new_t,因為alias會把location後面配置的路徑丟棄掉,把當前匹配到的目錄指向到指定的目錄。

注意:1. 使用alias時,目錄名後面一定要加"/"。

3. alias在使用正則匹配時,必須捕捉要匹配的內容並在指定的內容處使用。

4. alias只能位於location塊中。(root可以不放在location中)

摘引自:

Nginx虛擬目錄alias和root目錄

nginx是通過alias設定虛擬目錄,在nginx的配置中,alias目錄和root目錄是有區別的 1 alias指定的目錄是準確的,即location匹配訪問的path目錄下的檔案直接是在alias目錄下查詢的 2 root指定的目錄是location匹配訪問的path目錄的上一級目錄,這個pa...

Nginx之虛擬目錄 root與alias的區別

nginx其實沒有虛擬主機這個說法,因為它本來就是完完全全根據目錄來設計並工作的。如果非要給nginx安上乙個虛擬目錄的說法,那就只有alias比較 像 了。那alias標籤和root標籤到底有哪些區別呢?1 alias後跟的指定目錄是準確的,並且末尾必須加 否則找不到檔案 1 2 3 locati...

nginx 配置之 虛擬目錄

server location ht location phpadmin location php 要注意的是,location phpadmin 和 location phpadmin 是完全不同的。前者可以訪問到目錄,而後者將被重定向到伺服器,如 http 127.0.0.1 phpadmin ...