我有一个webroot之外的目录,用于存储从单独的管理系统上传的图像。图像存储格式为:如何同时使用apache mod_rewrite和别名?
filepath/writable/images/00/00/23/65/filename-236581.jpg
(其中Web根目录是文件路径/ HTML)
...例如。这里,236是数据库中图像的ID,文件系统被分解为编号目录,以阻止在一个目录内使用超过100个inode。
我希望能够从前端Web服务器访问这些,就像这样:
http://(server)/filename-236581.jpg
其中filename是一个SEO优化字符串,一样的实际文件名。
我可以通过mod-rewrite来重写URL,以便它包含额外编号的目录,并且我可以获得别名以将请求重定向到可写/图像目录,但是我不能同时执行这两个操作。如果我将别名和mod_rewrite指令都放进去,它会忽略别名,并且错误日志会抱怨它找不到filepath/html/uploaded-images。
这是我到目前为止有:
RewriteRule ^(.*)\/([^\/]*)-([0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/00/00/00/00/$2-$3.$4 [L,NC]
...等等,一路攀升到:
RewriteRule ^(.*)\/([^\/]*)-([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/$3$4/$5$6/$7$8/$9$10/$2-$3$4$5$6$7$8$9$10$11$12.$13 [L,NC]
alias /uploaded-images "filepath/writable/images"
取出[L]没有什么区别。