由于旧版项目, 依旧使用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;
}
收藏
扫描二维码,在手机上阅读
推荐阅读:
评论一下?