问题描述:
后台管理系统进行跳转时,get传参后端接收不到。
排错过程:
- 检查前段页面参数命名。
- 打印所有GET请求参数,并没有参数被传递。
- 查看nginx-access与error日志,发现无报错,请求日志url也正常,返回200。(坑)
- 由于环境是刚搭的nginx环境,项目跑了很久,故问题一定出在环境上。
- 查看nginx配置,发现nginx重写时,没有拼接参数。(迷)
解决方法:
将`try_files $uri /index.php; `改为`try_files $uri /index.php?$query_string;`,其中,$query_string为nginx接收的url参数。
知识恶补:
因为nginx接收到的url确实为带参数拼接的所以请求日志记录为有拼接的正确url。但是nginx有重写,导致内部重定向时无拼接参数。如:
www.xxxx.com/xxx?aa=1&bb=2
boot/xxx