Nginx não repassa os parâmetros query string para o framework

Saudações, A dica do dia é habilitar o envio de query string para o framework (zend, codeigniter, etc…) para que possa receber os parâmetros através de uma requisição GET. O problema foi detectado usando zend framework e ao chamar uma action usando query string para passar parâmetros.

(http://exemplo.inet/teste/index?var1=bla&var2=yey) as variáveis vinham vazias e usando a notação de barras no próprio zend (http://exemplo.inet/teste/index/var1/bla/var2/yey) funcionava normalmente.

A configuração desse host no nginx estava parecido com o abaixo:

server {

    root /var/www/nginx/exemplo;
    index index.php;
    ...
    try_files $uri $uri/ /index.php;
    ...
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9001;
        fastcgi_index index.php;
        ...
    }
}

Após pesquisar e achar o post desse cara: http://kfalck.net/2011/06/19/fix-empty-nginx-fastcgi-query-strings alterei para:

server {

    root /var/www/nginx/exemplo;
    index index.php;
    ...
    try_files $uri $uri/ /index.php?$query_string;
    ...
    location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_pass  127.0.0.1:9001;
            fastcgi_index index.php;
            ...
    }
}

Reiniciado o Nginx tudo voltou ao normal.

Té +

Patrocinado:
Wellington F. Silva avatar
About Wellington F. Silva
Conhecido como Boina, Tom e Wsilva entre outros apelidos. Possui certificações Docker Certified Associate e ZCE PHP 5.3, autor do livro Aprendendo Docker, do básico à orquestração de contêineres publicado pela editora Novatec. Docker Community Leader em São Paulo, tem background em telecomunicações, programação, VoIP, Linux e infraestrutura.
comments powered by Disqus