nginx — PHP $ _GET не заполняется параметрами запроса URL из веб-браузера

Я сталкиваюсь со странной проблемой, когда $_GET (а также $_REQUEST) переменная пуста, хотя параметры передаются.

Мой код PHP:

echo $_SERVER['REQUEST_URI'];
echo print_r($_REQUEST);
echo print_r($_GET);

Выход:

/service/getAllOrders?sortBy=date_created&sortDir=desc
Array()
Array()

Я использую 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;
}

Зачем?

1

Решение

Решением было просто передать переменную $ query_string в nginx:

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

Спасибо за всю твою помощь.

Райан

4

Другие решения

Попробуйте распечатать:

 echo $_SERVER['QUERY_STRING'];

Это данные GET, которые вставляются в Super Global $ _GET
Кроме того, я думаю, что вы должны позвонить в свой скрипт, используя эту ссылку:

www.yourdomain.com/service/getAllOrders.php?sortBy=date_created&sortDir=desc

Обратите внимание на .php ..

Посмотрите, какая у вас строка запроса, прежде чем проверять $ _GET, попробуйте распечатать, используя

 echo print_r($_GET,1);
1

По вопросам рекламы [email protected]