Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как настроить выдачу webp в DLE средствами .htaccess?

Как настроить выдачу webp в DLE средствами .htaccess?


     04.03.2023    dle, webp, dle 15.2    Общие вопросы, Ламерские вопросы    204

вопрос
Версия dle 15.2. Все изображения пережаты в webp и лежат рядом с оригиналами, пробовал в .htaccess код

<IfModule mod_rewrite.c>
  RewriteEngine On

  # Check if browser supports WebP images
  RewriteCond %{HTTP_ACCEPT} image/webp

  # Check if WebP replacement image exists
  RewriteCond %{DOCUMENT_ROOT}/$1.webp -f

  # Serve WebP image instead
  RewriteRule (.+)\.(jpe?g|png|gif)$ $1.webp [T=image/webp,E=REQUEST_image]
</IfModule>

<IfModule mod_headers.c>
  # Vary: Accept for all the requests to jpeg, png and gif
  Header append Vary Accept env=REQUEST_image
</IfModule>

<IfModule mod_mime.c>
  AddType image/webp .webp
</IfModule>


но сайт все равно выдает jpg упорно

Ответа пока нет


28 комментариев

lutskboy
Эксперт

lutskboy - 4 марта 2023 19:27 -

а в бд запросом изменить не вариант? а потом в консоли удалить все .png .jpg .jpeg

portak
Юзер

portak - 4 марта 2023 19:28 -

А что будет с юзером у которого нет поддержки webp в браузере?

lutskboy
Эксперт

lutskboy - 4 марта 2023 19:43 -

да ничего не будет. это их проблемы что у них допотопные браузеры

portak
Юзер

portak - 4 марта 2023 19:45 -

Ну это не ответ на мой вопрос, мой вопрос состоит в том, как отдавать юзеру с поддержкой webp (а без поддержки оставлять jpg) через htaccess. Предложенное не является решением никаким образом

lutskboy
Эксперт

lutskboy - 4 марта 2023 19:49 -

тогда на PHP делать или JS раз htaccess не помог. но это в стол заказов

portak
Юзер

portak - 4 марта 2023 19:54 -

С чего? Такие решения есть для wp и сотен других cms, правила работают исправно, просто я не понимаю как написать корректный путь до файла чтобы он был заменен, не знаю надо ли модифицировать файл в аплоуде при этом чтобы его правила при этом не конфликтовали с корневым...

Вы точно "эксперт"?

lutskboy
Эксперт

lutskboy - 4 марта 2023 19:58 -

попробуйте это убрать RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
и тут вам не благотворительная акция. захочу помогу, а хочу нет. никто никому ничем не обязан.

portak
Юзер

portak - 4 марта 2023 20:03 -

Ну все равно надо оставаться в ключе вопроса, даже если "не хочу помогать".

Меня смущает RewriteRule (.+)\.(jpe?g|png|gif)$ $1.webp [T=image/webp,E=REQUEST_image]
мне кажется (.+)\.(jpe?g|png|gif)$ не является правильным путем до файла по меркам DLE... судя по другим правилам там все иначе должно быть.

lutskboy
Эксперт

lutskboy - 4 марта 2023 20:21 -

может у вас nginx?

portak
Юзер

portak - 4 марта 2023 20:31 -

апач

lutskboy
Эксперт

lutskboy - 4 марта 2023 20:37 -

RewriteCond %{HTTP_ACCEPT} image/webp
RewriteRule ^ - [F]

вставьте только это. после RewriteEngine On и зайдите на сайт с браузера который поддерживает webp. Forbidden выдает?
если нет значит ваш сервер не определяет HTTP_ACCEPT.

portak
Юзер

portak - 4 марта 2023 20:40 -

Forbidden выдало, проверял с хрома последней версии с пк.

TeraMoune
Эксперт

TeraMoune - 4 марта 2023 20:46 -

Тут не прописывается путь, в правиле учитывается любая последовательность символов и букв. То есть под правило попадают буквально все запросы оканчивающиеся на перечисленные расширения.

portak
Юзер

portak - 4 марта 2023 20:50 -

Тогда почему у меня ничего не сработало? В какую сторону смотреть?

TeraMoune
Эксперт

TeraMoune - 4 марта 2023 20:51 -

А как вы поняли, что оно не работает ?)

portak
Юзер

portak - 4 марта 2023 20:52 -

инспект элемент отсылает на jpg, гугл падеспид говорит что изображения не в webp (при этом для проверки статичные имаги сделаны в picture и вручную добавлен webp и он их видит как надо).

TeraMoune
Эксперт

TeraMoune - 4 марта 2023 20:54 -


Ну в испекте кода и будет jpg, откройте картинку в запросе сравните тип файла и его Content-Length.

portak
Юзер

portak - 4 марта 2023 20:59 -

content-type: image/jpeg

TeraMoune
Эксперт

TeraMoune - 4 марта 2023 21:05 -

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

portak
Юзер

portak - 4 марта 2023 21:08 -

Возможно что-то стало проясняться... Некоторые изображения действительно стали image/webp, те которые остались image/jpeg у меня в стиле выводятся так style="background-image: url({image-2});" - и все они не изменены, хотя имеют webp копии

TeraMoune
Эксперт

TeraMoune - 4 марта 2023 21:13 -

ну кеш наверное остался, в таких случаях обновлять браузер надо всегда с ctrl+f5, либо в инспекторе кода есть опция игнорировать кеш.

portak
Юзер

portak - 4 марта 2023 21:21 -

делаю через очистка кэша и жесткая перезагрузка, но все равно часть изображений остается в оригинальном формате

lutskboy
Эксперт

lutskboy - 4 марта 2023 21:15 -

если у вас связка apache nginx то правила htaccess не будут применятся к картинкам. так как их отдает nginx

portak
Юзер

portak - 4 марта 2023 21:20 -

только апач

lutskboy
Эксперт

lutskboy - 4 марта 2023 21:28 -

скиньте ссылку на сайт. глянем

portak
Юзер

portak - 4 марта 2023 22:08 -

Думаю нет нужды давать ссылку на сайт, я почистил кэш клауда, отключил на сервере мод_пейджспид правила конверта jpg to webp и вроде как теперь все изображения при наличии webp отображаются верно, по крайней мере в консоли.

portak
Юзер

portak - 4 марта 2023 23:36 -

Еще вопрос возник, я не совсем разбираюсь в правилах реврайта, но указанные мной правила что, просто меняют расширение файла?

lutskboy
Эксперт

lutskboy - 6 марта 2023 13:06 -

нет. apache просто по запросу image.jpeg отдает image.webp

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх