關鍵字含義
- root 值爲本地目錄路徑。以此值作爲location請求路徑的根目錄。
- alias 值爲本地目錄或文件路徑。 將請求路徑中location部分改寫爲其值。
- rewrite 值有兩個,一個是匹配路徑的正則,一個是改寫的拼接字符串。作用是將url中匹配前者的部分,改寫爲後者。
實例1
需求:
請求/upload/images/bird.jpg,返回項目外E:/raid/www.my.com/uploads/images/bird.jpg。
做法:
location /upload/images {
root E:/www.my.com/raid/;
}
實例2
需求:
請求/upload-images/bird.jpg,返回項目外E:/raid/www.my.com/uploads/images/bird.jpg。
*這次文件資源路徑中不包含請求的路徑了。
做法:
# 在上一條基礎上,改寫location /
location / {
rewrite '^/upload-images/(.*).jpg$' /uploads/images/$1.jpg;
}
或者
# 不修改location /
location /upload-images {
rewrite '^/upload-images/(.*).jpg$' /uploads/images/$1.jpg;
}
注意
- 不要只rewrite URL中的一部分。比如實例2中,若寫成
rewrite '/upload-images/' /uploads/images/;
會報403。 - alias不能只替換 URL中一部分。比如不能將rewrite改成
alias /upload/images/;
。