给定这样的位置:
location ~ ^/user-content/img/) {
root /srv/foo/bar/uploads/;
autoindex off;
access_log off;
expires 30d;
}
是否可以使用 nginx 请求
/user-content/img/3AF1D3A69CE92ADAED8B0D25C2411595C7C798A5.png
要从目录中实际提供服务,/srv/foo/bar/uploads/3A/F1/D3
这将涉及从请求文件名中获取前两个字符并将它们用作第一个子文件夹,然后将字符 3-4 用于下一个更深的文件夹,最后为最后一个子文件夹附加字符 5-6?
你可以试试(未测试)
更新
只是给它一个测试。可以确认这种方法也有效。正如 OP 所指出的,带有花括号的正则表达式应该在 nginx 配置中引用。
这种方法应该有效:
在这一
location
行中,我们使用正则表达式将文件名的一部分捕获到四个不同的变量中,前三部分是目录,第四部分是文件名的其余部分。指令中使用变量
try_files
来创建图像名称的路径。