如何通过.htaccess移除图片URL中的可变前缀部分
问题原因
你原有规则存在两处核心错误:
- 正则仅匹配包含
&的路径,没有兼容所有任意前缀的场景 - 规则中未定义捕获组,所以
$1变量为空,无法定位到正确的图片资源
解决方法
根据你放置.htaccess的位置选择对应规则即可:
情况1:.htaccess放在/hta目录下
直接写入以下规则:
RewriteEngine On RewriteRule ^.*?(-7524-34-B\.webp)$ $1 [NC,L]
情况2:.htaccess放在站点根目录下
写入以下规则:
RewriteEngine On RewriteRule ^hta/.*?(-7524-34-B\.webp)$ /hta/$1 [NC,L]
规则说明
^.*?采用非贪婪模式匹配文件名前的所有可变前缀内容,兼容任意字符(包含你提到的&)- 括号内的内容是捕获组1,匹配你固定的图片文件名后缀
- 最终内部重定向到捕获到的固定文件名,不会改变浏览器地址栏的同时返回正确的图片资源
内容的提问来源于stack exchange,提问作者Onder Akbulut
相关产品推荐
相关产品推荐

