#regex #.htaccess #mod-rewrite #url-rewriting
Вопрос:
У меня есть изображение, доступное по следующему URL-адресу:
https://localhost/hta/-7524-34-B.webp
Мне нужно иметь возможность получить доступ к тому же изображению с URL-адресом, как показано ниже, и удалить <something>
часть:
https://localhost/hta/<something>-7524-34-B.webp
Как я могу это сделать с .htaccess
помощью ?
Обновить:
Я добавил следующее .htaccess
:
RewriteEngine On
RewriteRule ^.*?(?=amp;). /hta/$1 [NC,L]
Когда я пишу следующий URL-адрес, изображение не открывается. Только перечисление hta
каталога.
http://localhost/hta/something-elseamp;-7524-34-B.webp
Комментарии:
1. Вам придется быть немного более точным… Это или нет, что ваш фактический файл в физической файловой системе на стороне сервера называется
-7524-34-B.webp
и что он находится наDOCUMENT_ROOT
вашем хосте http? И что «что-то другое» на самом деле не имеет отношения к запросу? Тогда ответ на ваш вопрос: «да». И вы найдете множество существующих примеров здесь, на SO, для правила перезаписи, которое вам нужно для этого реализовать.
Ответ №1:
Чтобы внутренне переписать URL-адрес формы /hta/<something>-7524-34-B.webp
на /hta/-7524-34-B.webp
(удаление <something>
), вы можете сделать что-то вроде следующего в верхней части корневого .htaccess
файла:
RewriteEngine On
RewriteRule ^hta/[^/] (-7524-34-B.webp)$ hta/$1 [L]
Регулярное выражение [^/]
совпадает <something>
, которое отбрасывается. Оставшаяся часть URL-пути -7524-34-B.webp
фиксируется, и на нее делается ссылка в строке подстановки (2-й аргумент) с $1
обратной ссылкой.
Комментарии:
1. Большое вам спасибо! если динамическое имя файлов изображений my-7524-34B.webp похоже на другое-изображение. webp как я могу это сделать
2. @OnderAkbulut Просто измените
-7524-34-B.webp
часть регулярного выражения наanother-image.webp
. Обратная косая черта-экранирование необходимо перед буквальной точкой, чтобы свести на нет ее особое значение.3. хорошо, братан, но я не могу сделать это вручную, это происходит из бд 🙁