Regex Nginx重写规则,具有重复模式,可根据文件名将文件名转换为一组文件夹

Regex Nginx重写规则,具有重复模式,可根据文件名将文件名转换为一组文件夹,regex,nginx,url-rewriting,rewrite,Regex,Nginx,Url Rewriting,Rewrite,我正在创建一个类似imgur.com的网站,它从URL的根目录(即I.example.com/imagefile.jpg)托管大量图像 但我希望将服务器上的文件拆分为多个文件夹,以避免在一个文件夹中有太多文件(以避免文件系统性能问题)。我希望每个文件夹名称由文件名中的2个字母数字(A-Za-z0-9)字符递归组成 是否有一个重写规则可以使用重复模式来完成此操作 结果重写的一些示例如下: /1.jpg >>> /1/1.jpg /ab.jpg >>> /ab/a

我正在创建一个类似imgur.com的网站,它从URL的根目录(即I.example.com/imagefile.jpg)托管大量图像

但我希望将服务器上的文件拆分为多个文件夹,以避免在一个文件夹中有太多文件(以避免文件系统性能问题)。我希望每个文件夹名称由文件名中的2个字母数字(A-Za-z0-9)字符递归组成

是否有一个重写规则可以使用重复模式来完成此操作

结果重写的一些示例如下:

/1.jpg >>> /1/1.jpg
/ab.jpg >>> /ab/ab.jpg
/abc.jpg >>> /ab/c/abc.jpg
/abcd.jpg >>> /ab/cd/abcd.jpg
/filename.jpg >>> /fi/le/na/me/filename.jpg
URL有时也会包含破折号/连字符,我希望在文件夹中忽略它们,但保留在文件名中。i、 e:

/this-has-dashes.jpg >>> /th/is/ha/sd/as/he/s/this-has-dashes.jpg
只有一条规则可以做到这一点吗?那太好了。但如果不是,我很乐意为不同的预期文件名长度编写多个规则