@hrvasiliy

Как принимать GET запросы?

Имеется сайт (nginx + php). Пытаюсь получить GET запрос в контроллер. Сначала возникла проблема, что при ссылке вида site.ru/controller/action?login=test&pass=test Контроллер обращался к методу "action?login=test&pass=test", которого естественно не существует. написал правило для роутера, которое откидывает все после вопроса. Отлично, теперь все работает, только вот в самом методе action я по какой-то причине не могу принять GET.

Вопрос прост: как в данном случае получить GET? Или как это делают при использовании MVC?

UPD: Прикрепил конфиг nginx.

server {
    listen   80;
    root /var/www/site/public_html;

    access_log  /var/log/nginx/site.access.log;
    error_log  /var/log/nginx/site.error.log;

    server_name site.ru *.site.ru;

    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location /phpmyadmin {
        root /usr/share/;
        index index.php index.html index.htm;
        location ~ ^/phpmyadmin/(.+\.php)$ {
            try_files $uri =404;
            root /usr/share/;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            include /etc/nginx/fastcgi_params;
        }
        location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
            root /usr/share/;
        }
    }

    location /phpMyAdmin {
        rewrite ^/* /phpmyadmin last;
    }
}
  • Вопрос задан
  • 700 просмотров
Решения вопроса 1
@hrvasiliy Автор вопроса
Спасибо Алексей POS_troi Дело было в nginx, стоило сделать так:
location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Нам упрашивать вас показать конфиг нжинкса или сами покажете? :)
Ответ написан
Минимальная конфигурация выглядит вот так:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

И не забудь поставить cgi.fix_pathinfo = 0; в php.ini
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы