请求协助编写.htaccess URL重写规则,实现媒体路径与格式转换
解决URL重写配置问题
你的原规则失效是因为替换部分使用了正则表达式语法(.+?),但RewriteRule的替换字符串不支持这种写法,必须用反向引用捕获并复用原路径内容。
正确的.htaccess配置规则如下:
<IfModule mod_rewrite.c> RewriteEngine On # 将uploads下的图片重定向到webp-uploads对应路径的webp文件 RewriteRule ^wp-content/uploads/(.+)\.(jpe?g|png|gif)$ /wp-content/webp-uploads/$1.webp [R=301,L] </IfModule>
规则说明:
^wp-content/uploads/(.+)\.(jpe?g|png|gif)$:匹配以wp-content/uploads/开头的图片URL,其中:(.+)捕获uploads后面的完整路径(比如2022/02/file1),用$1在替换时引用\.(jpe?g|png|gif)$匹配图片扩展名
/wp-content/webp-uploads/$1.webp:替换为目标路径,用$1复用捕获的路径,扩展名固定为.webp[R=301,L]:R=301表示永久重定向,L表示这是最后一条规则,匹配后不再执行后续规则
注意事项:
- 确保
/wp-content/webp-uploads/目录下存在对应路径的.webp文件,否则会返回404错误 - 如果只是希望内部映射(地址栏URL不变,实际返回webp文件),可以去掉
R=301,保留[L]即可
内容的提问来源于stack exchange,提问作者Kacper Wilczewski
相关产品推荐
相关产品推荐

