我想在nginx中重写url来提供来自directoy的图片,如下所示。
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-Part /api/v1/image/small/
是静态的。
现在我已经在子目录中的服务器上存储了不同大小的图像,我想从那里提供它,我需要在图像文件名之前添加目录(在软件中配置)并重命名文件。
例如
代表/api/v1/image/small/dirl1/dirl2/dirl3/dirl4/abc.jpg
必须从
提供图片 /dirl1/dirl2/dirl3/dirl4/content/small_abc.jpg
我怎样才能做到这一点?
答案 0 :(得分:0)
最干净的方法是使用try_files
指令并捕获位置正则表达式中所需的内容。如果您有许多此类映射,则应考虑使用map
指令匹配请求$ uri并使用公共位置块。
location ~ ^/api/vi/image/small/(.+)/([^.]+)\.jpg$ {
try_files /$1/content/small_$2.jpg =404;
}