Назад | Перейти на главную страницу

Параметры nginx php-fpm, try_files и GET

У меня проблема с настройкой nginx. Кажется, все работает нормально, но мой php-скрипт не получает параметры GET. Самая актуальная ссылка, которую я получаю по моей проблеме, - это эта nginx + php-fpm - где мои параметры $ _GET? Но моя конфигурация немного отличается, и простое добавление $ query_string к последней директиве try_files просто не работает.

Вот мой конфиг:

server {
    server_name  api.example.com;
    root   /home/example/api/web;

    location /v2 {
        alias /home/example/api/v2/web;
        try_files $uri /v2/index.php;
        location ~* \.(js|css|less|png|jpg|jpeg|gif|ico|woff|ttf|svg|tpl)$ {
            expires 24h;
            access_log off;
        }
        location /v2/index.php {
            fastcgi_index  index.php;
            fastcgi_pass php56;
            fastcgi_split_path_info       ^/v2/(.+\.php)(.*)$;
            fastcgi_param SCRIPT_FILENAME  /home/example/api/v2/web/$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_NAME /v2/index.php;
        }
    }

}

Затем, используя эту конфигурацию, /v2 URL не видит GET, а /v2/index.php делает. Если я изменю строку try_files на try_files $uri /v2/index.php$query_string;, /v2 URL просто дает мне 404.

Хорошо, мне с этим помог один хороший парень. Вот рабочий конфиг:

   location /v2 {
        alias /home/example/api/v2/web;
        try_files $uri $uri/ /v2/index.php;
        location ~* \.(js|css|less|png|jpg|jpeg|gif|ico|woff|ttf|svg|tpl)$ {
            root /home/example/api/v2/web;
            expires 24h;
            access_log off;
        }
        location ~* /(.*) {
            include /etc/nginx/fastcgi_params;
            fastcgi_index  index.php;
            fastcgi_pass php56;
            fastcgi_param SCRIPT_FILENAME  /home/example/api/v2/web/index.php;
            fastcgi_param SCRIPT_NAME /v2/index.php;
        }
    }