OpenLiteSpeed图片webp化伪静态htaccess改写规则

openlitespeed环境下有一个专门WordPress插件——litespeed cache,其中的“云图片处理”模块就可以实现图片的webp化,但老白博客发现会生成许多不必要的缩略图,而且也不太好用。因此我们可以通过其他渠道将图片转成webp格式,然后再通过重写伪静态htaccess 规则方式来适配。

这里webp转化推荐的插件是image to webp,大家可以在WordPress插件官网下载
https://wordpress.org/plugins/images-to-webp/

此处提供两个伪静态规则,一个是image to webp插件生成的

image to webp插件伪静态

此处附加一个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格式文件进行响应,以提高页面加载速度和减小文件大小。

 论坛(未测试)

另外一个是来自论坛的: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

这个没测试过,看到管理员说可以用