nurba91
@nurba91
Копатель

Как переписать url картинок .htaccess?

Доброе утро уважаемые хакеры.
Никогда не работал с файлом .htaccess
Хочу преобразовать ссылки на картинки .
вот такие ссылки например
https://oldsite.ru/mugs/Flagler/2018/2018-00001170.jpg
https://oldsite.ru/thumbs/Flagler/2018/2018-00001170.jpg

на такие
https://newsite.ru/Eachtime/Flagler/mugshots/2018/2018-00001170.jpg
https://newsite.ru/Eachtime/Flagler/thumbnails/2018/2018-00001170.jpg

вот этой директорий может и не быть /2018/ или он может быть как 2017
/Flagler/ это часть может меняться зависимости от категорий

Вроде есть мнение что можно сделать через регулярки. Но я писал регулярки в php например функций preg_match .
А как это делается в htaccess не подскажите?
И если не затруднить regexp тоже хотелось бы посмотреть основную конструкцию чтобы потом его допилить
  • Вопрос задан
  • 356 просмотров
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
Собственно это и есть прегматч
RewriteCond %{HTTP_HOST} ^oldsite\.ru$
RewriteRule ^mugs/(.+[^/])/([0-9]{4,}/2018\-00001170\.jpg)$ https://newsite.ru/Eachtime/$1/mugshots/$2? [L,R=301]

Давай по порядку.
RewriteCond %{HTTP_HOST} ^oldsite\.ru$
Если это такой-то домен (можно опустить поскольку будет прописано только на этом сайте, так что можно удалить)
(.+[^/])/ любое количество символов от 1 до бесконечности Кроме / до /, в общем выделяем все до следующего слеша.
Ну и объеденяем все это счастье в первую группу ()
Поступаем так же с датой
[0-9]{4,} от нуля до девяти 4 раза, и обьеденяем уже достаточно большую часть урла второй группой.
Собственно подставляем выделенные группы в места новго урла $1 и $2
Последнее действие, заходим на тостер жмем решено ;)

ps
Можно грамотней было бы сделать первую группу через жадные и ленивые квантификаторы но как показывает практика народ вообще не догоняет что это такое, в общем работать будет и так ;)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы