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目錄後面帶不帶"/",都不會影響訪問。
root用來設置根目錄(相當於絕對路徑),而alias用來重置當前文件的目錄(相當於相對路徑)。
案例說明:
#則訪問/img/目錄下的文件時,nginx會去/var/www/image/img/目錄下找文件
location /img/ {
root /var/www/image;
.....
}
#則訪問/img/目錄裏面的文件時,ningx會自動去/var/www/image/目錄找文件
location /img/ {
alias /var/www/image/;
.....
}