首先讲下需求背景
需要将相同url 不同参数的地址转发到服务器上不同的地址
举例: example1.com/api.php?act=order ->example2.com/api/pay/order
example1.com/api.php?act=pay ->example2.com/api/pay/pay
nginx配置如下
location ^~ /api.php { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if ( $query_string ~* ^(.*)act=order\b(.*)$ ){ rewrite ^/api.php(.*)$ /api/pay/order/$1 break; //这边就是替换 参考 https://www.cnblogs.com/stxz/p/16457510.html proxy_pass http://example2.com; } }
红色标出的坑点:如果你的路由全部替换的话api.php后面的/是必须去掉的 不然替换的时候会多个/
标签:rewrite,url,pay,header,api,proxy,pass,php,com From: https://www.cnblogs.com/jpc123/p/17081179.html