Verifique se isso está definido na seção "location" do seu módulo fastcgi
fastcgi_param QUERY_STRING $query_string;
Eu instalei o nginx no Ubuntu Hardy e imediatamente percebi que os scripts PHP estavam recebendo matrizes de requisições vazias, isto é, se GET ou POST não estavam chegando, até mesmo o array $ _REQUEST estava vazio.
Quando eu voltar para o Apache, tudo bem.
A versão do nginx de instalação é 0.6.35-0ubuntu1.1 ~ hardy1 e PHP é PHP Versão 5.2.4-2ubuntu5.10.
O que poderia estar errado?
Verifique se isso está definido na seção "location" do seu módulo fastcgi
fastcgi_param QUERY_STRING $query_string;
É um recurso do try_files command
em nginx que o query_string
não é passado automaticamente para o arquivo reescrito, mas deve ser passado explicitamente. Por causa disso, _$SERVER['QUERY_STRING']
está sempre vazio e, portanto, as variáveis $_REQUEST
e $_GET
também não estão definidas.
Unlike with rewrite, $args are not automatically preserved if the fallback is not a named location. If you need args preserved, you must do so explicitly:
try_files $uri $uri/ /index.php?q=$uri&$args;
ou apenas com os argumentos
try_files $uri $uri/ /index.php?$args;
Se você quiser garantir a obtenção dos argumentos originais, use $query_string
, que é o mesmo que $args
, exceto que $query_string
é somente leitura.
Tente verificar o variables_order no arquivo de configuração do php usado por nginx.