【问题标题】: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 是上述正则表达式和替换的在线演示。如果您不确定如何用正则表达式替换,您可以使用“代码生成器”功能生成执行此替换的代码。

      【讨论】:

        猜你喜欢
        • 2018-03-14
        • 2013-07-25
        • 2018-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-14
        相关资源
        最近更新 更多