2015-11-03 122 views
1

我對像圖像的位置設置:Nginx的try_files忽略路徑

location ~* ^/images/.+\.(jpg|jpeg|gif|png)$ { 
    try_files /disk/$uri /images?uri=$uri; 
} 

$uri包括images名。當我訪問/images/one/two/three/item.jpg時,我想從try_files中排除images。所以訪問這應該實際上是嘗試/disk/one/two/three/item.jpg

任何想法如何我可以排除這第一部分?

回答

1

首先,我會用正面位置包裝正則表達式位置。這隔離了正則表達式的位置,並避免與其他人發生衝突。因此,您的配置將更順利地擴展。

如果這個目錄中只有圖像,那麼捕獲/ images /後面的所有內容並且不用擔心文件擴展名會更簡單。然後您可以自由地進行區分大小寫的比賽,速度更快一些。

location /images/ { 
    location ~ ^/images/(?<img_path>.+) { 
     try_files /disk/$img_path /images?uri=$img_path; 
    } 
}