【问题标题】:Using regex to redirect old domain to new while maintaining paths, but not redirecting if specific path in url exists使用正则表达式将旧域重定向到新域,同时维护路径,但如果 url 中存在特定路径,则不重定向
【发布时间】:2022-01-07 03:02:50
【问题描述】:

我正在使用 Kinsta 重定向工具来设置从一个域到另一个域的简单重定向。这需要重定向所有路径,除了一个特定路径(如果它存在于 URL 中,则不应发生重定向)。示例:

https://olddomain.com -> https://new.subdomain.com

https://olddomain.com/blog -> https://new.subdomain.com/blog

https://olddomain.com/faq -> https://new.subdomain.com/faq

但是如果:

https://olddomain.com/my-admin -> https://olddomain.com/my-admin(无重定向)

我基本上需要一个可以执行此操作的正则表达式规则,因为我无权访问配置文件。

我得到的最接近的事情是使用 (.?./technology) to https://new.subdomain.com/$1 作为测试;这导致只有 /technology 页面被重定向到新站点 /technology 页面。我需要相反的行为

【问题讨论】:

    标签: javascript regex wordpress redirect


    【解决方案1】:

    您可以在正则表达式中使用否定前瞻 (?!b) 语法,这基本上意味着“不匹配 b”。

    ^(?!\/?my-admin$)\/?(.*)$https://new.example.com/$1

    • ^ - 以
    • 开头
    • \/? - 可选斜杠前缀
    • (?!\/?my-admin$) - 不是带有可选斜杠前缀的“my-admin”
    • (.*) - 捕获组中的任何字符变为$1
    • $
    • 结尾

    在这里测试:https://regex101.com/r/jC8nB0/1229

    【讨论】:

    • 首先,感谢您的回复。所以我尝试使用这个正则表达式规则,但它仍然针对 /my-admin。它最终重定向到新域 /my-admin 路径。我正在寻求的行为是,除了 /my-admin 之外,所有路径都重定向到新域,该特定路径应保持旧域。
    • 如果您看这里regex101.com/r/jC8nB0/1229,它不应该与 my-admin URL 匹配。并非所有的正则表达式引擎都支持负面展望。你能告诉我们更多关于它使用的具体上下文吗?它是什么产品?
    • 不幸的是,在保密协议下关于细节。但是,一家公司正在将其整个站点迁移到一个新域。有一个特定的管理 url 路径允许访问仪表板。旧仪表板中有我们需要访问的旧数据。问题是当我们在旧域上点击 /my-admin 路径以访问旧仪表板时,它会重定向到新域 /my-admin 路径,从而无法访问旧域。理想情况下,我不想删除重定向,只需对其进行调整以允许访问旧域 /my-admin url 路径
    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    相关资源
    最近更新 更多