Htaccess如何用单条RedirectMatch规则匹配品牌列表实现URL重定向?
实现方案
可以通过正则捕获组匹配预设品牌列表,仅用单条规则完成所有品牌的重定向,规则如下:
RedirectMatch 301 "(.*)/brand/(nike|puma|其他品牌名)(.*)$" "$1/manufacturer--$2"
规则说明
- 括号内的
nike|puma|其他品牌名是品牌匹配列表,多个品牌之间用|分隔即可,后续新增品牌只需要在该括号内补充对应名称 - 第二个捕获组
$2会自动带入匹配到的品牌名,自动生成manufacturer--对应品牌的路径格式 - 原有逻辑完全保留:保留
/brand前的路径段、丢弃品牌名后的所有后缀路径,和你之前单条规则的重定向效果完全一致
效果验证
比如原请求URL为https://example.com/anything/brand/puma/something,重定向后输出结果为:
https://example.com/anything/manufacturer--puma
如果你站点的品牌数量非常多,不想把所有品牌都拼在规则字符串里,也可以搭配Apache的RewriteMap功能从外部字典读取品牌映射,品牌数量少于20个的话直接用上面的单条规则维护成本最低。
内容的提问来源于stack exchange,提问作者Steve Bailey
相关产品推荐
相关产品推荐

