nginx root alias 區別

訪問的目錄結構

root@nginx02  ~
# tree /application/image/
/application/image/
|-- 01.jpg
|-- images
|   |-- 01.jpg
|   |-- i1
|   |   `-- 01.jpg
|   |-- i2
|   |   `-- 02.jpg
|   |-- i3
|   |   `-- 03.jpg
|   |-- i4
|   |   `-- 04.jpg
|   |-- i5
|   |   `-- 05.jpg
|   |-- i6
|   |   `-- 06.jpg
|   `-- i7
|       `-- 07.jpg
`-- imgs
    `-- 01.jpg

9 directories, 10 files

栗子說明


 1,如果請求路徑是完全匹配^$正alias 必須是完整的路徑匹配 不然會找不到文件
  http://www.static.com/images/i1/01.jpg
  location ~ "^/images/i([0-9]{1})/(.*\.(gif|jpg|png|js|css))$" {
     alias /application/image/images/i$1/$2;
  }

 2,如果請求路徑是目錄請求 alias 路徑別名最後/必須加上
  http://www.static.com/test/01.jpg
  http://www.static.com/test/i1/01.jpg
  location /test/ {
     alias /application/image/images/;
  }
 3,如果請求路徑是/test/01.jpg 返回的路徑alias /application/image/images/01.jpg
 4,如果請求路徑是/test/i1/01.jpg 返回的路徑alias /application/image/images/i1/01.jpg
 注意-----------
 alias 會自動把請求/test/i1/01.jpg i1自動拼接到 alias /application/image/images/i1/後面 在去查找文件


 /i1/01.jpg
 如果請求www.test/il/01.jpg root 會把i1拼接到 root /application/image/images/il/ 到i1目錄找01.jpg
 若果是請求/i1/i01/01.jpg 會把i1/i01拼接到 root /application/image/images/il/i01/ 到i1/i01目錄找01.jpg
 root 路徑最後面可以沒有/;
 location /i1/ {
     root /application/image/images;
 }

總結 
  1,root  使用 /i1/ 是拿i1/後面去拼接 ,root 路徑後面可以沒有反斜槓/
  2,alias /test/i1/ 是從/test/後面拿去拼接,就是二級目錄去拼接 訪問目錄必須帶反斜槓 ,如果完全資源匹配就不用加上反斜槓/;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章