利用nginx重写url参数并跳转
需求:我们要将访问前的URL地址重写为访问后的地址,并跳转(注意参数值是动态的) 访问前地址:http://www.a.com/api?model=Air&platformCode=A®ion=CH&versionNumber=1 访问后地址:http://www.b.com/api?model=Air&platformCode=A
解决方案
主要利用了nginx中的$arg_xx参数动态获取url中的参数值。
重写规则最后的?很关键,如果不加的话,会导致url后的参数动态拼接到后面,加了之后,相当于起到一个阻断作用。
hosts配置
hosts文件位置:C:\Windows\System32\drivers\etc
127.0.0.1 www.a.com
127.0.0.1 www.b.com
nginx配置
if ( $host = 'www.a.com') {
rewrite ^/api http://www.b.com/api?model=$arg_model&platformCode=$arg_platformCode?;
}
注意:如果尝试多次,未发生跳转,请清除浏览器缓存再试。
同时,在每次修改完配置后,记得重启一下nginx。
下面罗列一些nginx常用命令:(更多nginx命令请合理利用搜索引擎)
start nginx.exe #启动nginx
nginx.exe -s reload # 重载配置文件
nginx.exe -s stop # 关闭nginx
taskkill -f -im nginx* #暴力结束nginx进程

浙公网安备 33010602011771号