【问题标题】:catchall URL regex except specific page包罗万象的 URL 正则表达式,特定页面除外
【发布时间】:2019-11-23 19:04:55
【问题描述】:

我们在一些电子邮件签名中有一个旧的 URL 结构在流通,我想创建一个正则表达式模式来执行永久重定向,特定页面除外。

我们以前的每个办公地点都有一个子域。例如,Office 1 是 office1.domain.com,Office 2 是 office2.domain.com,以此类推直到 Office 16。

每个办公室的员工都有一个电子邮件签名,其中包含指向其特定子域网站上电子邮件免责声明页面的链接。例如。 office1.domain.com/email_disclaimer。

当我们的新网站推出时,我们摆脱了这种旧结构,现在只有一个网站,其中每个办公室都有页面,而不是每个办公室的子域(例如 domain.com/office1)。所以我目前正在使用 16 条正则表达式规则,例如 ^/office1.* 将任何页面从旧的 office1.domain.com 重定向到静态 domain.com/office1。但这也会重定向电子邮件免责声明。

如何修改正则表达式以从 * catchall 中排除“email_disclaimer”,以便重定向除 office1.domain.com/email_disclaimer 之外的所有内容?

如果可以做到这一点,我是否会为 domain.com/email_disclaimer 创建一个匹配“任何”子域的规则并将其重定向到新的静态电子邮件免责声明页面?这个正则表达式规则看起来如何?

【问题讨论】:

    标签: regex nginx redirect


    【解决方案1】:

    您可以使用负前瞻

    ^(?!.*email_disclaimer)office1
    

    Demo

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 2018-12-09
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多