NGINX 重定向查询字符串被忽略

NGINX redirect with query strings getting ignored

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

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

所有其他重定向工作正常,但是其中 none 使用以下重写规则工作:

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

我们已经重新加载并重新启动了服务器但没有任何运气 - 我们应该在配置中做些什么来捕获这些东西吗?

谢谢

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

典型的解决方案是使用 map 指令 map query string parameters to URIs, or not doing this type of redirection at the Nginx level, and using a plugin like Retour* 来处理重定向。

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