刘华
实验室:JS测试器
分类专栏
hadoop2篇
mysql1篇
nginx8篇
java5篇
架构设计3篇
信息安全6篇
前端开发2篇
数据同步6篇
AI7篇
其他9篇

怎样通过nginx动态修改url参数

liuhua-2021/11/26 22:58:03

如果在线的系统出现前端调用后端参数名不对的问题需要紧急处理,而此时前后端又不方便修改、发布,这时改怎样处理?

不急,如果后端接口是通过nginx反向代理的,那你有一个简便的方法,可以通过nginx重写url参数,来解决这个问题。

在server模块下,添加,如下配置:

if ( $request_uri ~* "/xxx\?codeOrName=" ){
 rewrite ^/(.*)  https://xxx.xxx.cn/xxx?name=$arg_codeOrName? break;
  }

以上表示通过重新url,将codeOrName参数名修改为name参数名。

其中$request_uri为带参数的url,不包含主机、端口。~*是正则匹配。注意匹配时,如果要匹配的字符传中有"?",要用反斜杠转义。

rewrite是重新url指令。

$arg_xxx指url中的xxx参数。

新url后的?表示不拼接原url中的参数,不带?则会将原来的参数拼接过来。

break指nginx重新url后,用新的url继续执行,但不返回给客户端去跳转。

通过这样的重写,实现url参数名称的修改。

当然,nginx的url重写有更多的应用场景。

小钉 京ICP备16032583号-1