Итак ... У меня есть несколько миллионов PNG с уникальными именами, которые распространяются по сложной структуре каталогов, которая идет на 15-20 уровней, и я хочу переместить их в каталог/мой/специальный/каталог/Переписывать файлы с определенным расширением в определенный каталог
Я не могу понять способ сделать это с переписывает (не перенаправляет)
Я попытался:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/\.]+).png?$ /my/special/directory/$1.png [R]
Но это работает на первом уровне только (корень). Я также пробовал
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9/]+)([^/\.]+).png?$ /my/special/directory/$2.png [R]
Но это совсем не работает. Как мне это написать?
Я проверяю, чтобы изображение не существовало, потому что в этом vhost есть другие каталоги, которые содержат изображения и останутся такими, какие они есть.
ТИА
Я пробовал этот шаблон, поскольку пытался получить имя файла в $ 1 - так что было после последнего /. Иногда имена каталогов содержат точки. Второе правило, которое вы опубликовали, работает на всех уровнях с R (перенаправляет правильно), но при переписывании (L) он не делает - выбрасывает 404. –
Звучит как проблема с абсолютными или относительными путями ко мне ... Можете ли вы разместить базу URL-адрес приложения? – arkascha
Это нормально Я думаю, что я оставлю это как перенаправление, это не будет слишком много накладных расходов, кроме того, я использую CDN. Спасибо, что опубликовали очень полезный ответ! –