WordPress 网站提供 webp。作为旧浏览器的后备方案,如果不接受 webp,则应传递 jpg 或 png。
每个图像文件都可以为 webp 和 jpg 或 png。具有相同的名称但不同的文件类型。
所以:image.webp 加 image.jpg 或 image.png
使用以下代码,如果 webp 未运行,我至少希望传递 JPG。但有一个地方有问题:
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} !image/webp
RewriteCond %{REQUEST_URI} (?i)(.*)(\.webp)$
RewriteCond %{DOCUMENT_ROOT}%1.jpg -f
RewriteRule (?i)(.*)(\.webp)$ %1\.jpg [L,T=image/jpeg]
</IfModule>
期望上面的代码能够工作。但事实并非如此,我现在被困住了。
有人可以帮忙吗?我的错误在哪里?
我扩展了代码,使其可以处理 jpg 和 png:
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} !image/webp
RewriteCond %{REQUEST_URI} (?i)(.*)(\.webp)$
RewriteCond %{DOCUMENT_ROOT}%1.jpg -f
RewriteRule (?i)(.*)(\.webp)$ %1\.jpg [L,T=image/jpeg]
RewriteCond %{REQUEST_URI} (?i)(.*)(\.webp)$
RewriteCond %{DOCUMENT_ROOT}%1.png -f
RewriteRule (?i)(.*)(\.webp)$ %1\.png [L,T=image/png]
</IfModule>
有可能缩短吗?我尝试过 | (或)但没有成功。