正则表达式重定向目标

时间:2018-11-06 13:04:24

标签: regex redirect url-rewriting url-redirection

我需要根据URL的单个部分重定向多个页面,所以这些页面:

site/type1
site/type1/page1
site/type1/page2
site/type1/page3

需要重定向到:

site/type2
site/type2/page1
site/type2/page2
site/type2/page3

实际上涉及的页面超过4个。

我认为我可以使用触发器:

(.*)/type2(.*)

但是我对如何设置目标感到很困惑,因此它会使用上一页中的内容动态填充URL的其余部分。

欢迎提出任何想法。

谢谢。

2 个答案:

答案 0 :(得分:1)

您只需查找site\/type1并将其替换为site\/type2

我用vim测试了它,对我来说效果很好:%s/site\/type1/site\/type2/g 希望对您有帮助

答案 1 :(得分:0)

您的语言可能支持用正则表达式替换。

这是您应该使用的正则表达式:

(.*\/)type1(\/.*|$)

这与您建议的有点不同。您的正则表达式将匹配type2而不是type1,但是您想从type1重定向到type2,对吗?我更改的另一件事是第2组。如果您不希望将site/type1b之类的内容变成site/type2b,则应将第二个组写为\/.*|$

要进行替换,您应该使用$1type2$2,这意味着“在第1组中捕获的东西,接着是type2,然后是在第2组中捕获的东西”。

Here是上述正则表达式和替换的在线演示。如果不确定如何用正则表达式替换,则可以使用“代码生成器”功能生成使用您的语言执行此替换的代码。