openlitespeed环境下有一个专门WordPress插件——litespeed cache,其中的“云图片处理”模块就可以实现图片的webp化,但老白博客发现会生成许多不必要的缩略图,而且也不太好用。因此我们可以通过其他渠道将图片转成webp格式,然后再通过重写伪静态htaccess 规则方式来适配。
这里webp转化推荐的插件是image to webp,大家可以在WordPress插件官网下载
https://wordpress.org/plugins/images-to-webp/
此处提供两个伪静态规则,一个是image to webp插件生成的
[h2]image to webp插件伪静态[/h2]
此处附加一个image to webp的中文翻译包:https://qtrj.lanzoul.com/ijqFn14n88za
使用方法见这篇:https://www.xcbtmw.com/29439.html
# BEGIN Images to WebP
<IfModule mod_mime.c>
AddType image/webp .webp
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} "/"
RewriteCond %{REQUEST_FILENAME} ".(jpg|jpeg|gif|png)$"
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteCond %{QUERY_STRING} !no_webp
RewriteRule ^(.+)$ $1.webp [NC,T=image/webp,E=webp,L]
</IfModule>
# END Images to WebP
解释一下代码的意思
这段代码的作用是将图片格式转换为WebP格式。WebP是一种图像压缩格式,可以提供更小的文件大小和更快的加载速度。
代码的解释如下:
- 第1行到第4行定义了一个条件,如果服务器上安装了
mod_mime.c
模块,就将.webp
文件的MIME类型设置为image/webp
。 - 第6行到第15行定义了一个条件,如果服务器上安装了
mod_rewrite.c
模块,并且客户端请求中包含image/webp
的Accept头信息,并且请求的文件是以.jpg
、.jpeg
、.gif
、.png.webp
结尾的图片文件,并且同名的.webp
文件存在,并且请求的URL中不包含no_webp
参数,那么将请求的URL重写为同名的.webp
文件,并设置响应头的Content-Type为image/webp
。 - 最后两行是标记代码块的开始和结束。
综上所述,这段代码的作用是在支持WebP格式的情况下,将请求的图片文件转换为对应的WebP格式文件进行响应,以提高页面加载速度和减小文件大小。
[h2] 论坛(未测试)[/h2]
另外一个是来自论坛的:https://forum.openlitespeed.org/threads/jpeg-to-webp-over-htaccess.4153/,
<IfModule mod_headers.c>
# Check if browser support WebP images
# 检查浏览器是否支持 WebP 图片
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{HTTP_ACCEPT} image/webp
# Check if WebP replacement image exists
# 检查是否存在 WebP 替换镜像
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
# Serve WebP image instead
# 改为提供 WebP 图像
RewriteRule (.+).(jpe?g)$ $1.webp [T=image/webp,E=accept:1]
重写规则 (.+).(jpe?g)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>
# END Images to WebP
这个没测试过,看到管理员说可以用
本文作者为test,转载请注明。