У меня проблема с настройкой 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;
}
}