如何编写nginx重写规则来替换查询字符串中的查询参数

如何编写nginx重写规则来替换查询字符串中的查询参数,nginx,nginx-reverse-proxy,Nginx,Nginx Reverse Proxy,伙计们 我们有以下http请求: 我们想将重定向\u uri从“some.domain.com”替换为“other.domain.com” 怎么做 谢谢你需要这样做 location /auth/realms/master-realm/protocol/openid-connect/auth { if ($args ~* "(.*)(some\.domain\.com)(.*)") { set $args "$1other.domain.com$3"; ret

伙计们

我们有以下http请求:

我们想将
重定向\u uri
从“some.domain.com”替换为“other.domain.com”

怎么做


谢谢你需要这样做

location /auth/realms/master-realm/protocol/openid-connect/auth {
   if ($args ~* "(.*)(some\.domain\.com)(.*)") {
       set $args "$1other.domain.com$3";
       return 301 $scheme://$host$uri$args;
   }

}
测试:

curl -I  "vm/auth/realms/master-realm/protocol/openid-connect/auth?response_type=code&client_id=regportal&redirect_uri=http%3A%2F%2Fsome.domain.com%2Fregportal%2Fsso%2Flogin&state=a49a02d5-f873-453f-9148-61793f11ecf3&login=true&scope=openid"
HTTP/1.1 301 Moved Permanently
Server: openresty/1.11.2.2
Date: Fri, 15 Sep 2017 06:01:51 GMT
Content-Type: text/html
Content-Length: 191
Connection: keep-alive
Location: http://vm/auth/realms/master-realm/protocol/openid-connect/authresponse_type=code&client_id=regportal&redirect_uri=http%3A%2F%2Fother.domain.com%2Fregportal%2Fsso%2Flogin&state=a49a02d5-f873-453f-9148-61793f11ecf3&login=true&scope=openid

谢谢,这也适用于我,但只有在我在if块下添加了try_files语句来处理新的URI之后。位置字符串与这两个匹配!