htaccess:如果浏览器不接受 webP,则传递 jpg 或 png

问题描述 投票:0回答:1

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>

期望上面的代码能够工作。但事实并非如此,我现在被困住了。

有人可以帮忙吗?我的错误在哪里?

.htaccess png jpeg webp fallback
1个回答
0
投票

我扩展了代码,使其可以处理 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>

有可能缩短吗?我尝试过 | (或)但没有成功。

© www.soinside.com 2019 - 2024. All rights reserved.