nginx實現網站url帶參跳轉

北美巨熊發表於2020-10-12

應工作需求,訪問一個網站時直接跳轉到另一個url
目標URL http://123.com.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 http://bbb.example.com;
    proxy_set_header Host $proxy_host;
} 
在location用rewrite改變了URI之後,proxy_pass將使用改變後的URI。上面例子(.*)是將所有引數傳給$1,轉發時/$1會拼接在http://bbb.example.com後面。
例項一:
rewrite ^(.*)/dev/  http://admin.jk.com/test/redirect.html break;
就是訪問http://admin.jk.com/dev/src/pages/login.html 或者 http://admin.jk.com/dev/ 就會跳轉到後面指定的url
例項二:
rewrite  ^/(.*)$  http://test.jk.com/dev/src/pages/member/memberMessage/msgTransfer.html?code=$1 permanent;
就是當訪問http://r.test.jk.com/123的時候,就是把域名加/後面的引數也就是123全部給他後臺的$1實現跳轉
 
例項三:
rewrite  ^/mdt/cloud/(.*)$  http://qerp.qumaiyao.com/api/$1 permanent;
就是當訪問http://test.jk.com/mdt/cloud/yyxUser/platformExceptionMsg的時候將yyxUser/platformExceptionMsg傳給後面的$1實現跳轉

查到的資料
Windows系統安裝nginx及配置
Nginx帶變數引數跳轉
Nginx網站常見的跳轉配置例項

相關文章