Я уверен, что он берет любое изображение, которое подается и возвращается с webp в конце вместо его оригинального расширения?
В принципе, да.(Хотя это не «перенаправление».)
Более конкретно ... (при условии, что mod_rewrite включен - проверяется внешним контейнером <IfModule mod_rewrite.c>
):
RewriteRule (.+)\.(jpe?g|png)$
- Для каждого URL-пути, который соответствует регулярному выражению (.+)\.(jpe?g|png)$
.Другими словами, любой URL, который заканчивается на .jpg
, .jpeg
или .png
. RewriteCond %{HTTP_ACCEPT} image/webp
- И заголовок HTTP-запроса Accept
содержит строку image/webp
.Другими словами, пользовательский агент принимает изображения webp. RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
- и соответствующее изображение .webp
существует в том же месте, что и запрошенный файл.например.Запрос /foo/bar/baz.jpg
и /foo/bar/baz.webp
существует. RewriteRule -------- $1.webp
- Затем внутренне переписывает запрос к изображению .webp
(например, foo/bar/baz.webp
).Обратите внимание, что это не «перенаправление», пользовательский агент по-прежнему видит исходное имя .jpg
(или .png
).Также ... T=image/webp
- Устанавливает заголовок Content-Type
в image/webp
.(Переопределяя значение image/jpeg
или image/png
, которое в противном случае было бы отправлено.) E=accept:1
- Устанавливает для переменной среды accept
значение 1. (Это можно использоватьвашим приложением.)
Я полагаю, что целью кода является fool inspeed insights, чтобы он не жаловался на обслуживание следующего поколенияформаты изображений.
Я не думаю, что цель заключается в том, чтобы " fool inspeed insights".(Это большая работа, чтобы обмануть инструмент!)
Тем не менее, он допускает постепенное ухудшение ... a .jpg
обслуживается по умолчанию и .webp
подается, еслиПользовательский агент поддерживает его (и он существует!).
Кроме того, я заметил, что когда я изменяю размеры изображения на сайте (в целях оптимизации), pagepeed не регистрируетизменения, в то время как этот код присутствует в htaccess, например, вносит свой вклад в некоторый вид кэша изображенийЕсли я удалю этот фрагмент, pagepeed обнаружит новые оптимизированные изображения?
Регенерируете ли вы изображение .webp
?
Этот код применяется только при запросе .jpg
(или .png
) изображения и соответствующее .webp
изображение существует.Если вы не обновите изображение .webp
(или оно не существовало изначально), то любой совместимый пользовательский агент не увидит изменения в вашем изображении.
В будущем ..когда все и все поддерживают .webp
изображения, вы можете смело удалить две директивы RewriteCond
(и относительно дорогую проверку файловой системы).И сохраните все ваши изображения как .webp
(на вашем сайте нет изображений .jpg
).Изображение URL все равно будет .jpg
.Эти директивы позволяют вам обновлять изображения без необходимости изменять URL-адрес.
В этом случае вам также следует удалить оболочку <IfModule mod_rewrite.c>
, поскольку ваш сайт теперь зависит , когда mod_rewrite делает свое дело,Оболочка <IfModule>
должна использоваться, только если mod_rewrite необязательно , чтобы ваш сайт работал "нормально".