Перенаправление Ситнакс - PullRequest
       4

Перенаправление Ситнакс

1 голос
/ 27 апреля 2020

Веб-сайт, над которым я работаю, будет использовать различные пути к изображениям, которые фактически будут храниться в одной общей папке.
Я хочу, чтобы все запросы, соответствующие указанному шаблону, были успешными и отображали запрошенное изображение.

Мой шаблон критериев соответствия выглядит следующим образом:

"/" + any web-friendly path (could include forward slashes) + "_" + 6 digit number + "_" + one of the following: [tn|s|m|l|xl|xxl] + ".jpg" 

Тогда, если запрос соответствует шаблону, он должен быть перенаправлен следующим образом:

"/img/" + requested 6 digit number + "_" + requested characters from [tn|s|m|l|xl|xxl] + ".jpg".

Так что все (включая первый часть запрашиваемого имени файла) прямо перед номером 6 di git следует заменить на "/img/".

Некоторые примеры:

/foo/bar_000001_s.jpg                 -> /img/000001_s.jpg
/foo/bar/foo-foo_bar-bar_000099_s.jpg -> /img/000099_s.jpg

Моя ближайшая попытка:

RewriteRule ^\/([A-Za-z0-9_-\/\s]+)_([0-9]{6})_([tn|s|m|l|xl|xxl])(.jpg)$ /img/$2_$3$4$

1 Ответ

1 голос
/ 27 апреля 2020

Вы можете использовать:

RewriteRule (?:^|/)[\w-]+?_(\d{6})_(tn|[sml]|xx?l)(\.jpg)$ /img/$1_$2$3 [L,NC,R=302]
  • Сделать старт / необязательно
  • Использовать \w для [a-zA-Z0-9_]
  • Сделать первый матч не жадный, используя +?
  • Для чередования удалите [ и ] и очистите его
  • Удалите $ с конца целевого URI
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...