У меня есть каталог за пределами webroot, который используется для хранения изображений, загруженных из отдельной системы администратора. Изображения сохраняются в этом формате:
filepath/writable/images/00/00/23/65/filename-236581.jpg
(где webroot - filepath/html)
... например. Здесь 236 - это идентификатор изображения в базе данных, а файловая система разбита на пронумерованные каталоги, чтобы остановить использование более 100 инодов в одном каталоге.
Я хочу иметь доступ к ним с веб-сервера front-end, например:
http://(server)/filename-236581.jpg
Где filename является строкой, оптимизированной для seo, так же, как и для имени фактического файла.
Я могу получить mod-rewrite, чтобы переписать URL-адрес, чтобы он содержал дополнительные нумерованные каталоги, и я могу получить псевдоним, чтобы перенаправить запрос в каталог для записи/изображений, но я не могу делать оба одновременно. Если я добавлю оба псевдонима и директивы mod_rewrite, он игнорирует псевдоним, и журнал ошибок жалуется, что он не может найти файлpath/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] не имеет значения.