![将 URL 映射到文件系统](https://linux22.com/image/572910/%E5%B0%86%20URL%20%E6%98%A0%E5%B0%84%E5%88%B0%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.png)
将此 URL 映射到此文件系统路径的最佳方法是什么?
从
http://site.com/200x300/ed3269d0-f9ef-4ffc-abea-5982969876c0/my file.jpg
到
/var/www/e/d/3/ed3269d0-f9ef-4ffc-abea-5982969876c0/200x300.jpg
在哪里
- “200x300” 是尺寸图像
- “ed3269d0-f9ef-4ffc-abea-5982969876c0” 是指南图像
- “my file” 是文件的名称(用于 SEO,可能包含空格)
- “e”、“d” 和 “3” 是前 3 个字母指南
- “.jpg” 是扩大文件的
答案1
尝试如下操作:
location / {
location ~* ^/(\d+x\d+)/((\w)(\w)(\w)[-\w]+)/[^/]+\.jpg$ {
alias /var/www/$3/$4/$5/$2/$1.jpg;
}
}
location /some_other_location/ { ... }
答案2
这是我得出的结论(因为我也需要提取扩展):
server {
root /var/www;
location ~* ^/(\d+x\d+)/((\w)(\w)(\w)[-\w]+)/[^\.]+\.(\w+)$ {
try_files /$3/$4/$5/$2/$1.$6 /index.html;
}
}