nginx - Nginx 重写发送除一个之外的所有查询参数
问题描述
domain1.com
在将用户从 重定向到之前,我需要从请求 URI 中删除某个查询参数domain2.com
。查询参数是migrate
.
所以从这个网址:
domain1.com/check?migrate=true&uuid=1821
我想把用户带到这个 URL:
domain2.com/check?uuid=1821
可以有更多的查询参数,我想保留它们,除了migrate
解决方案
您将需要将正则表达式应用于包含整个查询字符串的变量 - 所以要么是可能的候选者,$request_uri
要么$args
是可能的候选者。
要重定向/check
,您可以使用:
location = /check {
if ($args ~* ^(.*&)?migrate=[^&]*(&(.*))?$)
return 301 http://domain2.com$uri?$1$3;
}
return 301 http://domain2.com$uri?$args;
}
请参阅此使用注意事项if
。
推荐阅读
- sql - Anylogic:将参数值写入数据库表
- mongodb - PostgreSQL 和 MongoDB WHERE IN 条件
- sql - 如何部署一个没有人可以看到/查看源脚本但可以执行它的编译数据库
- typescript - 即使字段“type”是 const,Typescript 也不会推断类型
- react-native - xhr 轮询错误套接字 io / React-Native / ExpressJs
- vue.js - 一种从 Vuetify 中的数据表访问默认排序方法的方法
- javascript - 连接到数据库时存储敏感连接数据的最佳实践
- c++ - 什么时候允许折叠表达式作为模板参数?
- node.js - Leaflet JS:ZOOM 移动元素
- flutter - 如何在 Flutter 中填充父窗口小部件宽度,但防止在所有可用空间上拉伸父窗口