Измените png | jpeg для webp на htaccess - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь показать изображения webp на моем веб-сайте, где есть изображение в формате jpeg или png, используя веб-сервер LiteSpeed ​​и файл htaccess.

Фрагмент не работает из-за названия моих изображений webp.Вместо того, чтобы изменить расширение, мой конвертер добавил новое расширение к полному имени картинки.Пример:

URL-адрес обычных фотографий:

http://domain.tld/path/to/pic/image.png (or jpe?g)

URL-адрес веб-фотографий:

http://domain.tld/path/to/pic/image.png.webp

Вот так выглядит мой htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_URI}  (.*)(\.(jpe?g|png))$
RewriteRule .* %1\.webp [L,T=image/webp] 
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept env=REDIRECT_accept
</IfModule>
AddType image/webp .webp

Я думаю, что проблема в RewriteRule.В результате я получаю:

http://domain.tld/path/to/pic/image.webp

Вместо:

http://domain.tld/path/to/pic/image.png.webp (or jpe?g.webp)

Я попытался изменить строку RewriteRule на эту, но она не сработала:

RewriteRule .* %1\.(jpe?g|png).webp [L,T=image/webp]

Может кто-нибудь пролить свет на это?Я новичок в htaccess, и я знаю, что я не использую правильный синтаксис, чтобы заставить его работать.Это веб-сайт на тот случай, если вы, ребята, захотите просмотреть страницу и проверить изображения: LEXSTYLE Любая помощь будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 06 декабря 2018

У вас есть "или" в выходной части правила ((jpeg | jpg) | png), без определения условия.

Чтобы решить, что вы можете использовать (. *) Для установки $ 1,как это:

RewriteRule ^/path/to/imgdir(.*) /path/to/imgdir$1.webm

Что безопасно, так как ранее у вас уже было ограничение:

RewriteCond %{REQUEST_URI}  (.*)(\.(jpe?g|png))$

Кроме того, вы можете рассмотреть возможность двойной проверки на наличие.Файл webp в ваших условиях:

RewriteCond %{DOCUMENT_ROOT}/$1\.webp -f

Также помните, что предпочтительным методом стал:

<picture>
  <source srcset="/path/to/image.webp" type="image/webp">
  <img src="/path/to/image.jpg" alt="">
</picture>

(который до сих пор бесполезен для использования, например, для фоновых файлов в таблицах стилей CSS)

...