我的 nginx 配置有问题,我不知道是否有可能解决我的问题。
我有很多照片需要上传到服务器。问题是,所有这些图片都在同一个目录中。“解决方案”是重定向图片,例如:现在我有 11.png、12.png、13.png、22.png。我想要的是,带有 napi 1x.png 的图片将位于目录 1 中,因此位置是 1/11.png、1/12.png,...问题是,我该如何在 nginx 配置中解决这个问题?如果我向 example.com/11.png 发出请求,nginx 首先在根目录中查找,下一个是 1/11.png。我认为 try_files 是一个很好的解决方案,但我需要自动搜索文件名首字母并检查该目录。
我尝试使用正则表达式映射,正则表达式是:^.*data\/product\/\b(\w)
但我还是被这个问题困扰。
答案1
在此示例中:
location ~ ^(/images/)(\w)(\w*\.\w+)$ {
try_files $uri $1$2/$2$3 =404;
}
对于请求的 URL /images/1234.png
,正则表达式位置将进行以下三次捕获:
$1 = /images/
$2 = 1
$3 = 234.png
该try_files
语句将首先尝试/path/to/root/images/1234.png
然后/path/to/root/images/1/1234.png
。