【问题标题】:Regex Redirect Destination正则表达式重定向目标
【发布时间】:2018-11-06 21:29:33
【问题描述】:
我需要根据 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 的其余部分。
欢迎任何想法。
谢谢。
【问题讨论】:
标签:
regex
redirect
url-rewriting
url-redirection
【解决方案1】:
您可以简单地查找site\/type1 并将其替换为site\/type2
我用 vim 对其进行了测试,对我来说效果很好 :%s/site\/type1/site\/type2/g
希望对你有帮助
【解决方案2】:
您的语言可能支持用正则表达式替换。
这是您应该使用的正则表达式:
(.*\/)type1(\/.*|$)
这和你提议的有点不同。您的正则表达式将匹配type2 而不是type1,但您想从type1 重定向到type2,对吗?我更改的另一件事是第 2 组。如果您不希望 site/type1b 之类的内容变成 site/type2b,那么您应该将第二组写为 \/.*|$。
对于替换,你应该使用$1type2$2,意思是“第1组捕获的东西,然后是type2,然后是第2组中捕获的东西”。
Here 是上述正则表达式和替换的在线演示。如果您不确定如何用正则表达式替换,您可以使用“代码生成器”功能生成执行此替换的代码。