列表中的 Htaccess 重定向匹配?
Htaccess redirect matching from a list?
我相信应该有比我目前拥有的更简单的重写 URL 的方法,想知道是否有人可以提供帮助。
我工作的网站有多个品牌,例如:
https://example.com/anything/brand/nike/something
https://example.com/anything/brand/puma/something
我当前的重定向是
RedirectMatch 301 "(.*)/brand/nike(.*)$" "/manufacturer--nike"
为了获得以下输出,删除 /brand/
并将 nike
替换为 manufacturer--nike
,最后删除后面的所有内容,即 /something
.
https://example.com/anything/manufacturer--nike
现在我可以为 Puma
和其他每个品牌添加第二条规则,但我想有一种方法可以匹配品牌列表并使用一个规则,但我的 Google技能让我未能找到解决方案。
有办法吗?
如果品牌数量有限,那么您可以在正则表达式中使用 alternation(例如 nike|puma|brand
等),以匹配 nike
或puma
或 brand
.
旁白: 要匹配 nike/<something>
,您至少应该检查斜杠,否则它将匹配 nikeeeee
和 nikey
等等(虽然不一定是问题。)
例如:
RedirectMatch 301 "(.*)/brand/(nike|puma|brand)/" "/manufacturer--"
正则表达式末尾的 (.*)$
- 只需删除 URL-路径的尾部部分 - 不是必需的。
反向引用包含与第二个捕获(替代)子模式匹配的“品牌名称”。
method to rewriting URLs
澄清一下,这是一个外部重定向,不是“重写URLs”。
我相信应该有比我目前拥有的更简单的重写 URL 的方法,想知道是否有人可以提供帮助。
我工作的网站有多个品牌,例如:
https://example.com/anything/brand/nike/something
https://example.com/anything/brand/puma/something
我当前的重定向是
RedirectMatch 301 "(.*)/brand/nike(.*)$" "/manufacturer--nike"
为了获得以下输出,删除 /brand/
并将 nike
替换为 manufacturer--nike
,最后删除后面的所有内容,即 /something
.
https://example.com/anything/manufacturer--nike
现在我可以为 Puma
和其他每个品牌添加第二条规则,但我想有一种方法可以匹配品牌列表并使用一个规则,但我的 Google技能让我未能找到解决方案。
有办法吗?
如果品牌数量有限,那么您可以在正则表达式中使用 alternation(例如 nike|puma|brand
等),以匹配 nike
或puma
或 brand
.
旁白: 要匹配 nike/<something>
,您至少应该检查斜杠,否则它将匹配 nikeeeee
和 nikey
等等(虽然不一定是问题。)
例如:
RedirectMatch 301 "(.*)/brand/(nike|puma|brand)/" "/manufacturer--"
正则表达式末尾的 (.*)$
- 只需删除 URL-路径的尾部部分 - 不是必需的。
反向引用包含与第二个捕获(替代)子模式匹配的“品牌名称”。
method to rewriting URLs
澄清一下,这是一个外部重定向,不是“重写URLs”。