RewriteRule / RewriteCond字符串匹配

时间:2013-11-29 23:20:28

标签: regex apache .htaccess mod-rewrite

我目前正在使用RewriteRule将名为/ shop /的子文件夹重定向到新网站的根目录,该网站运行良好。

RewriteRule ^shop/?(.*)$ /$1 [L,NC,R=301]

我现在想要包含一个可以匹配下面的路径的条件

旧网站 - www.domain.com/shop/ brand-name

并将其重写为:

新网站 - www.domain.com/brands/brand-name

品牌名称部分匹配并执行301重定向。 mod_rewrite可以这样做吗?重要的是它匹配品牌有效地交换/购物/换/品牌/但不影响我上面的RewriteRule,因为它完美适用于其他一切。提前谢谢......

1 个答案:

答案 0 :(得分:0)

也许我弄错了,但这应该有效:

RewriteRule ^shop/brand-name$ /brands/brand-name [L,NC,R=301]
RewriteRule ^shop/?(.*)$ /$1 [L,NC,R=301]

诀窍是您在现有规则之前添加新规则。与L选项一起使用,可以避免执行其他规则。

如果你有多个乐队(我期望的那样),你可以用这种方式列出:

RewriteRule ^shop/(brand-name|other-brand|third-brand)$ /brands/$1 [L,NC,R=301]