【问题标题】:How to write regex for redirection如何编写用于重定向的正则表达式
【发布时间】:2016-11-30 20:34:03
【问题描述】:

我有一些网址

/a/b?key1=value&key2=value
/a/b/?key1=value&key2=value

我想将它们重定向到 url

/a/b/c/?key1=value&key2=value

到目前为止我所做的是 我可以使用正则表达式将/a/b/ 重定向到/a/b/c

^(\/.*\/)$

我也不能在网址中硬编码b,因为它是动态的并且可能会有所不同。

感谢任何帮助。

【问题讨论】:

    标签: regex url-rewriting tuckey-urlrewrite-filter


    【解决方案1】:

    正则表达式怎么样,

    ^((?:/[^/?]+){2})/?
    
    • 替换为$1/c
    • /[^/?]+ 匹配 /,后跟 /? 以外的任何内容。

      {2} 确保重复两次,一次用于a,另一次用于b。整场比赛在第 1 组中被捕获。

    • /? 匹配末尾的可选/

    Regex Demo

    【讨论】:

    • 如何获取查询字符串?
    • @EkanshRastogi 在这里我们根本不会触及查询参数。我们匹配到查询参数。如果您仍然感兴趣,可以使用\?[^?]+$ 来匹配查询参数
    • 感谢您的帮助,这将适用于我提到的第二个网址,但不适用于第一个网址
    • @EkanshRastogi 你能尝试用* 替换最后一个? 并检查吗?我认为不支持使用? 的零或一模式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 2013-07-25
    相关资源
    最近更新 更多