2014-11-01 107 views
0

我想重寫nginx中的url來爲directoy提供圖片,如下所示。在nginx中重寫動態URL

URI例如:

/api/v1/image/small/dirl1/dirl2/dirl3/dirl4/abc.jpg 

/api/v1/image/small/dirl1/dirl2/dirl3/abc.jpg 

/api/v1/image/small/dirl1/abc.jpg 

所以這裏的URI部分/api/v1/image/small/是靜態的。

現在我已將不同大小的圖像存儲在服務器的子目錄中,我想從那裏提供服務,需要在圖像文件名稱之前添加目錄(在軟件中配置)並重命名文件。
例如

/api/v1/image/small/dirl1/dirl2/dirl3/dirl4/abc.jpg

圖像必須從

/dirl1/dirl2/dirl3/dirl4/content/small_abc.jpg

送達我怎樣才能做到這一點?

回答

0

最簡潔的方法是使用try_files指令並捕獲您在位置正則表達式中需要的內容。如果您有很多此類映射,則應考慮使用map指令來匹配請求$ uri並使用公共位置塊。

location ~ ^/api/vi/image/small/(.+)/([^.]+)\.jpg$ { 
    try_files /$1/content/small_$2.jpg =404; 
}