Nginx映射項目外靜態資源的實例

關鍵字含義

  • 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/;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章