如果图像(jpg或png)可以用作webp,我想提供.webp图像。如果没有,我想显示jpg或png。
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.(jpe?g|png)(.*)$ $1.$2.webp [NC,L]
AddType image/webp .webp
这个问题,我需要最终的网址是这样的:
"myurl.com/foo.jpg.webp"
如果webp文件存在,并且我不需要:
"myurl.com/foo.jpg"
作为后备解决方案。
答案 0 :(得分:2)
如果所请求的URL以jpeg
或png
结尾,则可以使用
webp
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule ^ %{REQUEST_FILENAME}.webp [L]
如果您愿意的话,您可能会有更多的限制
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule \.(jpe?g|png)$ %{REQUEST_FILENAME}.webp [L]
如果条件和规则不匹配,请求将通过并按原样提供文件(.jpg / .png)。
答案 1 :(得分:1)
有些浏览器不完全支持 webp,你应该添加一个条件只发送到支持的浏览器:
<Files *.webp>
Header set Vary "Accept-Encoding"
AddType "image/webp" .webp
AddEncoding webp .webp
</Files>
RewriteCond %{HTTP:Accept} image/webp
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule ^(.*)$ $1.webp [L]