情况:产品系列的一部分通过新功能进行了升级/增强,从而增加了" XL"所有型号名称。
问题:需要将旧网址重定向到新网址,但新网址包含旧关键字+" XL",导致"太多重定向和#34 ;
实施例:
RewriteRule ^.*(PRODUCT-001).*$ http://www.example.com/PRODUCT-001-XL [L,NC,R=301]
如何指定我希望此确切字符串匹配,而不是其他网址?
E.g。 "此规则应与 PRODUCT-001 相匹配,但不 PRODUCT-001-XL ?
答案 0 :(得分:1)
尾随.*
允许在它之后出现任何/无任何内容。删除它,你的正则表达式将匹配PRODUCT-001
而不是PRODUCT-001-XL
。
RewriteRule ^.*(PRODUCT-001)$ http://www.example.com/PRODUCT-001-XL [L,NC,R=301]
请参阅:https://regex101.com/r/tP8yq4/1与https://regex101.com/r/tP8yq4/2
如果您只想阻止-XL
,另一种方法是否定前瞻。您需要使用Apache 2+。
^.*PRODUCT-001(?!-XL).*$