.htaccess редирект изображений

G8
На сайте с 13.03.2006
Offline
100
7840

Здравствуйте!

Подскажите, как привильно сделать редирект изображений из /старая-папка/ >>> /новая папка/ с условием, что в изображениях также поменялись нижнее подчёркивание на тире.

Т.е.:

старый адрес - папка/название_фото.jpg

новый адрес - папка/ресурс/название-фото.jpg

Для папки нашёл:

RewriteRule ^папка/([^\/]*)\.jpg$ /папка/ресурс/$1.jpg [R=301,L]

Но вот как сделать редирект с нижнего подчёркивания на тире разобраться не могу.

Помогите!

I
На сайте с 28.03.2011
Offline
37
#1

Если у вас в названии картинки может быть неопределенное число слов через подчеркивание, вам надо будет или создать столько правил сколько подчеркиваний, или сделать редирект всех картинок на скрипт, который будет исправлять урл и делать редирект на правильный адрес картинки. Для частного случая


RewriteRule ^папка/([^_]*)_(.*\.jpg?)$ /папка/ресурс/$1-$2 [L,R=301]
Помогаю не только словом.. (/ru/forum/830720)
G8
На сайте с 13.03.2006
Offline
100
#2
imtod:
Если у вас в названии картинки может быть неопределенное число слов через подчеркивание, вам надо будет или создать столько правил сколько подчеркиваний, или сделать редирект всех картинок на скрипт, который будет исправлять урл и делать редирект на правильный адрес картинки. Для частного случая

RewriteRule ^папка/([^_]*)_(.*\.jpg?)$ /папка/ресурс/$1-$2 [L,R=301]

Спасибо! Покажите пожалуйста пример, если в названиях от 1-го до 3-х нижних подчёркиваний и, соответственно, в новых названиях до от 1-го до 3-х тире.

I
На сайте с 28.03.2011
Offline
37
#3

Ну если совсем по аналогии:


RewriteRule ^папка/([^_]*)_([^_]*)_(.*\.jpg?)$ /папка/ресурс/$1-$2-$3 [R=301]
RewriteRule ^папка/([^_]*)_([^_]*)_([^_]*)_(.*\.jpg?)$ /папка/ресурс/$1-$2-$3-$4 [R=301]

и дальше до упора. но, в идеале, надо учитывать, что картинки могут быть не только jpg

G8
На сайте с 13.03.2006
Offline
100
#4
imtod:
Ну если совсем по аналогии:

RewriteRule ^папка/([^_]*)_([^_]*)_(.*\.jpg?)$ /папка/ресурс/$1-$2-$3 [R=301]
RewriteRule ^папка/([^_]*)_([^_]*)_([^_]*)_(.*\.jpg?)$ /папка/ресурс/$1-$2-$3-$4 [R=301]

и дальше до упора. но, в идеале, надо учитывать, что картинки могут быть не только jpg

Огромное спасибо!

Буду пробовать!

---------- Добавлено 09.06.2014 в 12:26 ----------

imtod:

и дальше до упора. но, в идеале, надо учитывать, что картинки могут быть не только jpg

проверил - всё работает, ещё раз спасибо!

Возник ещё вопрос -

если файлы переехали из одной папки в несколько разных:

старые адреса фото в одной папке -

папка/название_фото1.jpg

папка/название_фото5.jpg

папка/название_фото8.jpg

перехало по разным папкам -

новый адрес - папка/ресурс1/название-фото1.jpg

новый адрес - папка/ресурс6/название-фото5.jpg

новый адрес - папка/ресурс4/название-фото8.jpg

как формула будет выглядеть в этом случае?

И ещё возник вопрос:

Если изображения которые переехали из одной папки в другу имеют 1-2-3 подчёркивания и, соответственно, поменялись на 1-2-3 тире.

из папка/назва_ние_фото1.jpg в папка/ресурс/назва-ние-фото1.jpg

из папка/название_фото2.jpg в папка/ресурс/название-фото2.jpg

из папка/на_зва_ние_фото3.jpg в папка/ресурс/на-зва-ние-фото3.jpg

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий