Nginx 重写 Query 参数
  • 累计撰写 120 篇文章
  • 累计收到 1 条评论

Nginx 重写 Query 参数

2024-10-19 / 0 评论 / 20 阅读

由于旧版项目, 依旧使用php-fpm模式提供api服务, 采用 类似 /api.php?m=account&act=login类似这种方式进行控制器分类.

目前的话 打算更换为其他框[人]架, 使用路由来分配控[在]制器.

由于前端及软件迁[旅]移成本较高, 就想着是否可以通[途]过Nginx的伪[内]静态来重写.

于是一开始尝试使用

 
 
 
location / {
proxy_pass https://127.0.0.1:8787;
rewrite ^api.php\?m=(.*)&act=(.*) /$1/$2 break;
}

直接对其进行重写, 但测试后发现并为达到预期的效果, 服务端接收到的 依旧只有/api.php

貌似并未被ngi[容]nx匹配到, 查询过后发现 这样貌似是匹配不[保]到路径的?

最终在查询过后, 发现可以通过 query_string 来对其进行匹配

 
 
 
location /api.php {
proxy_pass http://127.0.0.1:8787;
if ( $query_string ~ ^m=(.*)&act=(.*)) {
set $a $1;
set $b $2;
rewrite ^/(.*)$ /$a/$b break;
}
}
 
location / {
proxy_pass http://127.0.0.1:8787;
}
收藏

扫描二维码,在手机上阅读

评论一下?

OωO
取消