【问题标题】:NGINX redirect with query strings getting ignoredNGINX 重定向,查询字符串被忽略
【发布时间】:2021-09-15 12:08:34
【问题描述】:

我添加了大约 30 个重定向,其中 90% 是直接 URL,但是有一些具有查询字符串,例如

.com/?page_id=2966
.com/?page_id=2965
.com/?page_id=2964

所有其他重定向都可以正常工作,但是这些重定向都不能使用以下重写规则:

rewrite ^/?page_id=2966$ /sustainable-travel? permanent;
rewrite ^/?page_id=2965$ /car-sharing? permanent;
rewrite ^/?page_id=2964$ /eco-driving? permanent;

我们已经重新加载并重新启动了服务器,但没有任何运气 - 我们应该在配置中做一些特别的事情来捕获这些吗?

谢谢

【问题讨论】:

    标签: nginx redirect query-string


    【解决方案1】:

    ? 和之后的任何内容都是查询字符串,不属于rewrite(和其他)指令中使用的规范化 URI。

    典型的解决方案是使用 map 指令到 map query string parameters 到 URI,或者不在 Nginx 级别进行这种类型的重定向,并使用像 Retour* 这样的插件来处理重定向。

    • 免责声明:我是 Retour 的作者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-03
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 2018-03-15
      • 2017-06-02
      相关资源
      最近更新 更多