将 URL 映射到文件系统

将 URL 映射到文件系统

将此 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;
   }
}

相关内容