You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.htaccess配置无追加后缀WebP替代JPG/PNG加载失效修复

问题根因

现有配置无法匹配无追加后缀同名WebP文件的核心原因是文件存在性判断逻辑错误:

  • 规则中RewriteCond %{REQUEST_FILENAME}.webp -f的判断逻辑为:在当前请求的物理文件路径末尾直接拼接.webp后缀,检查该文件是否存在。即请求image.jpg时,仅会校验image.jpg.webp是否存在,这也是你之前只能识别追加了.jpg后缀的WebP文件的原因。
  • 当你删除image.jpg.webp后,该判断条件不成立,重写规则不会触发,服务器会直接返回原JPG/PNG文件,因此右键保存图片会显示为JPG格式。
修正后可用配置
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /wordpress/
    # 仅对支持WebP格式的浏览器生效
    RewriteCond %{HTTP_ACCEPT} image/webp
    # 校验同名无后缀追加的WebP文件是否存在
    RewriteCond %{DOCUMENT_ROOT}/wordpress/$1.webp -f
    # 将JPG/PNG请求重写到对应WebP资源,设置正确MIME类型,匹配后停止后续重写
    RewriteRule ^(.+)\.(jpg|jpeg|jpe|png)$ $1.webp [T=image/webp,L,NC]
</IfModule>

<IfModule mod_mime.c>
    # 确保服务器正确识别WebP文件的MIME类型
    AddType image/webp .webp
</IfModule>
配置说明
  • 调整了文件存在性判断逻辑:通过正则捕获组$1拿到原文件去掉格式后缀的文件名部分(如请求image.jpg时$1值为image),直接校验image.webp是否存在,完全匹配你需要加载无追加后缀同名WebP的需求。
  • 新增L标志:匹配到该重写规则后立即停止后续重写流程,避免被WordPress默认的路由重写规则干扰导致资源404或返回错误。
  • 补充WebP MIME类型声明:避免服务器返回WebP资源时Content-Type响应头错误,导致浏览器无法正确识别资源格式。
验证注意事项
  • 配置更新后需清空浏览器缓存,若站点接入了CDN、WordPress缓存插件也需要同步清空缓存,避免旧缓存规则干扰测试结果。
  • 验证时可打开浏览器开发者工具的「网络」面板,找到对应图片请求查看响应头:Content-Type值为image/webp且响应状态为200即为配置生效。

内容的提问来源于stack exchange,提问作者kodfire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 05:03:39