【问题标题】:Need help creating regex redirects for URLs with query strings attached需要帮助为带有查询字符串的 URL 创建正则表达式重定向
【发布时间】:2018-12-03 12:08:03
【问题描述】:

问题是在使用 infusionsoft 或其他电子邮件平台时,当在电子邮件中使用 URL 时,它会在 URL 中添加查询字符串。如果该 URL 正在被重定向,则附加的查询字符串将无法正确重定向,从而将用户发送到 404 页面。

我试图弄清楚如何正确创建正则表达式以重定向页面并捕获附加到它的查询以便正确重定向。

我想我已经知道如何做到这一点,但随后需要弄清楚如何排除具有相同开头文本的 URL...

例如: 如果原来的url是:/page-url/
并且需要重定向到/page-url-free/

所以这些版本需要重定向:
/page-url
/page-url/
/page-url/?inf_contact_key=474a03f754bb3dadf5415b3b652fc7baa6979sf0112d3fe

但我需要正则表达式来不捕获 /page-url-free/,因为这会导致无限循环。

任何建议都会很棒。非常感谢

【问题讨论】:

  • 你的上下文是什么:你是在你的网络服务器上重写 URL 还是将它应用到服务或工具上?
  • 如果你能分享你想出的正则表达式就太好了。
  • 以下是我将其缩小到的范围:^/page-url/?(\?.*)?$ 过去几天我一直在测试它,它似乎是做这个伎俩!

标签: regex url-redirection


【解决方案1】:

如果您只需要将 page-url 替换为 page-url-free,并保持查询参数(如果提供)完全相同,则以下正则表达式将工作:

\/(page-url)(?:\/\?.+)?$

上述正则表达式将捕获 page-url,然后可以根据您使用的内容轻松地将其替换为 page-url-free

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多