Nginx rewrite发送除一个查询参数外的所有查询参数

Nginx rewrite发送除一个查询参数外的所有查询参数,nginx,url-rewriting,Nginx,Url Rewriting,在将用户从domain1.com重定向到domain2.com之前,我需要从请求URI中删除某个查询参数。查询参数是migrate 因此,从这个URL: domain1.com/check?migrate=true&uuid=1821 我想将用户带到此URL: domain2.com/check?uuid=1821 可以有更多的查询参数,我想保留它们,除了migrate您需要对包含整个查询字符串的变量应用正则表达式-因此$request\u uri或$args都是可能的候选变量 要仅重定向/检查

在将用户从
domain1.com
重定向到
domain2.com
之前,我需要从请求URI中删除某个查询参数。查询参数是
migrate

因此,从这个URL:
domain1.com/check?migrate=true&uuid=1821

我想将用户带到此URL:
domain2.com/check?uuid=1821


可以有更多的查询参数,我想保留它们,除了
migrate

您需要对包含整个查询字符串的变量应用正则表达式-因此
$request\u uri
$args
都是可能的候选变量

要仅重定向
/检查
,您可以使用:

location = /check {
    if ($args ~* ^(.*&)?migrate=[^&]*(&(.*))?$)
        return 301 http://domain2.com$uri?$1$3;
    }
    return 301 http://domain2.com$uri?$args;
}
请参见关于
的使用,如果