Nginx的PHP的FMP,try_files和GET参数

我有一个问题让nginxconfiguration工作。 似乎一切工作正常,但我的PHP脚本不会收到GET参数。 我得到的最相关的链接是这一个nginx + php-fpm – 我的$ _GET参数在哪里? 但是我的configuration稍有不同,只需在最后一个try_files指令中添加$ query_string就行不通了。

这是我的configuration:

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; } } } 

然后使用这个configuration, /v2 URL不会看到GET,而/v2/index.php 。 如果我将try_files行更改为try_files $uri /v2/index.php$query_string;/v2 URL只是给了我404。

好吧,一个好人帮助了我。 这是工作configuration:

  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; } }