加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx和PHP-FPM:查询参数不会传递给PHP

发布时间:2020-12-13 21:19:48 所属栏目:Nginx 来源:网络整理
导读:我目前正在使用Vagrant设置一台本地开发机器.一切都按预期运行,期望查询参数不会传递给子页面上的PHP. 这意味着在www.example.com/?a=b上,查询参数是可访问的,但在www.example.com/subpage/?a=b上则不然. 我发现使用Google解决此问题的一般回复是修改try_fil

我目前正在使用Vagrant设置一台本地开发机器.一切都按预期运行,期望查询参数不会传递给子页面上的PHP.

这意味着在www.example.com/?a=b上,查询参数是可访问的,但在www.example.com/subpage/?a=b上则不然.

我发现使用Google解决此问题的一般回复是修改try_files指令,但这对我不起作用.我还检查了request_order& php.ini中的variables_order – 一切都在那里正确设置.

这是我的配置:

 server {
     listen                80;
     server_name           example.com www.example.com;
     root                  /var/www/public;

     location / {
         index   index.html index.htm index.php;
         try_files $uri $uri/ /index.php?$query_string;
         include /etc/nginx/fastcgi_params;
     }

     location ~ .php${
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $request_filename;
         include /etc/nginx/fastcgi_params;
     }

     sendfile off;
}

因为我不太了解服务器设置和安装;管理,我在这里打砖墙,还有一些我还检查过的东西:

> $query_string在/ etc / nginx / fastcgi_params中设置为fastcgi_param QUERY_STRING $query_string;这似乎对我来说是正确的.
> fastcgi_params的路径是正确的

由于它不在子页面上时工作,我现在怀疑位置块不匹配,但我真的不明白这是怎么回事 – 请帮忙.

最佳答案
您需要使用$is_args作为问号& $args或$query_string用于查询字符串后面的问号.

这是最后一个组合.

try_files $uri $uri/ /index.php$is_args$query_string;

还要确保你已经设置好了

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_split_path_info ^(.+.php)(/.+)$;

然后传递给它fastcgi;

fastcgi_pass 127.0.0.1:9000;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读