PHP $_GET 未从 Web 浏览器填充 URL 查询参数

Rya*_*iss 2 php get nginx query-parameters

我遇到了一个奇怪的问题,其中$_GET(and $_REQUEST) 变量为空,即使正在传递参数。

我的PHP代码:

echo $_SERVER['REQUEST_URI'];
echo print_r($_REQUEST);
echo print_r($_GET);
Run Code Online (Sandbox Code Playgroud)

输出:

/service/getAllOrders?sortBy=date_created&sortDir=desc
Array()
Array()
Run Code Online (Sandbox Code Playgroud)

我正在使用 nginx 并将所有请求转发到 index.php。我的配置如下:

server {
    listen       80;
    server_name  decaro.localhost;
    root       /Users/rweiss/Sites/decaro/LocalOrderWebsite;

   #access_log  /usr/local/etc/nginx/logs/default.access.log  main;

    location / {
        add_header Cache-Control "no-cache, no-store";
        include   /usr/local/etc/nginx/conf.d/php-fpm;
        try_files $uri $uri/ /index.php$args;
    }

    location /assets/ {
        allow all;
    }

    location = /info {
        allow   127.0.0.1;
        deny    all;
        rewrite (.*) /.info.php;
    }

    error_page  404     /404.html;
    error_page  403     /403.html;
}
Run Code Online (Sandbox Code Playgroud)

为什么?

Rya*_*iss 5

解决方案是在 nginx 中传递 $query_string 变量:

try_files $uri $uri/ /index.php?$query_string;
Run Code Online (Sandbox Code Playgroud)

感谢您所有的帮助。

瑞安