最近由于给网站升级了 https,将环境换成了 Nginx + php,不料配置的时候犯下的一个小错误险些造成挠头掉发的惨剧 -。-,在这里和各位同学分享一下,避免你们秃头。
我的服务器是 Ubuntu 16.04.3 LTS,下面说到的配置路径是 /etc/nginx/sites-available,修改其中的 default 文件。
我的网站用的 yii 框架,在配置 Nginx 的时候 location / 那里选择了使用 try_files, 由于配置写成了:
try_files $uri $uri/ /index.php?atgs;
导致 php 无法通过 Nginx 获取 GET 参数,解决办法就是擦擦亮眼睛,看看配置是否都落了什么字符,上面 ? 后的 atgs 改为 $args 或者 $query_string 就可以了,改完后这行配置应该写为:
try_files $uri $uri/ /index.php?$args;
或者
try_files $uri $uri/ /index.php?$query_string;
就可以了~然后记得重启 Nginx 服务,问题解决~
参考资源:
https://serverfault.com/questions/231578/nginx-php-fpm-where-are-my-get-params