如果查询字符串值不匹配,则 Nginx 重写/重定向

如果查询字符串值不匹配,则 Nginx 重写/重定向

这个问题有点长,对此我深表歉意。情况如下:我有两个 URL 指向应用程序的两个不同版本。

https://www.codecanisters.in/devapp/(旧版本在此网址上运行)

https://www.codecanisters.in/devapp/neo(新版本在此网址上运行)

现在来看看查询字符串重定向规则。我有很多活动都是根据访问者的来源来运行的。例如,假设活动 foo 的来源 ID 为 1100,那么访问者将使用以下 URL 访问旧应用程序:

https://www.codecanisaters.in/devapp/?source=1100&someothervar=somethingelse很快。

新版本的应用程序发布后,我希望所有访问者都被重定向到新应用程序,即https://www.codecanisters.in/devapp/neo除非它们来自几个预先定义的来源,例如

https://www.codecanisaters.in/devapp/?source=1100或 1200 或 1300,但其余访问者无论来源是什么或 URL 中未提供来源都应重定向到新的应用程序。

理想情况下,如果可以在 nginx 配置的位置块中实现这一点,那就太棒了。我知道根据 nginx 文档,if 是邪恶的,但在这种情况下,如果我们必须使用 if 来比较查询字符串,我不介意。

还有另一个要求,当重定向到新的 URL 时,所有查询字符串仍应保留,而不会导致重定向循环。

相关内容