列表中的 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 等),以匹配 nikepumabrand.

旁白: 要匹配 nike/<something>,您至少应该检查斜杠,否则它将匹配 nikeeeeenikey等等(虽然不一定是问题。)

例如:

RedirectMatch 301 "(.*)/brand/(nike|puma|brand)/" "/manufacturer--" 

正则表达式末尾的 (.*)$ - 只需删除 URL-路径的尾部部分 - 不是必需的。

反向引用包含与第二个捕获(替代)子模式匹配的“品牌名称”。

method to rewriting URLs

澄清一下,这是一个外部重定向,不是“重写URLs”。