Url nginx+;php fpm-除了不能使用$\u GET之外,php可以正常工作

Url nginx+;php fpm-除了不能使用$\u GET之外,php可以正常工作,url,nginx,get,php,Url,Nginx,Get,Php,我正在滚动我自己的mvc框架,从一个前端控制器开始,它正在工作——所有请求都通过/index.php,它正在加载引导文件,例如router.php 但是,$\u GET不起作用,因此我的router.php文件不起作用。我的URL方案将只是/controller/view,省略了.php,但我还不能更改URL,因为我无法$\u获取URL以传递到router.php(加载正确的控制器和视图) 我到处寻找解决方案,并在stackoverflow上找到了类似的帖子,但建议的修复方案对我不适用: 这是

我正在滚动我自己的mvc框架,从一个前端控制器开始,它正在工作——所有请求都通过/index.php,它正在加载引导文件,例如router.php

但是,$\u GET不起作用,因此我的router.php文件不起作用。我的URL方案将只是/controller/view,省略了.php,但我还不能更改URL,因为我无法$\u获取URL以传递到router.php(加载正确的控制器和视图)

我到处寻找解决方案,并在stackoverflow上找到了类似的帖子,但建议的修复方案对我不适用:

这是我的nginx.conf:

server {
    listen       80;
    server_name mvcapp; 
    #Remove Trailing Slash '/'
    rewrite ^/(.*)/$ /$1 permanent;
    root /usr/local/var/www/mvcapp/public; 
    index index.php;        


    location / {
        # Neither of the below 2 lines work
        #try_files $uri $uri/ /index.php?$query_string;
        try_files $uri $uri/ /index.php?$args;
    }


    #proxy Non-static requests to nginx
    location ~ \.php$ {
        # Include the default fastcgi_params file included with Nginx
        include /usr/local/etc/nginx/fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_param PATH_INFO $fastcgi_script_name;
    # Pass to upstream PHP-FPM;
        fastcgi_pass 127.0.0.1:9000;
     }

}
我对php fpm的了解非常薄弱,所以也许我缺少了一个fastcgi_参数

你认为哪里不对


(谢谢)

如果要将URI作为get参数传递,请执行以下操作:

try_files $uri $uri/ /index.php?$request_uri;

您的
index.php
看起来就像您使用了
index.php?/controller/view

如果要将URI作为get参数传递,请执行以下操作:

try_files $uri $uri/ /index.php?$request_uri;

您的
index.php
将看起来就像您使用了
index.php?/controller/view

谢谢Mohammad,是的,这就是我在之前的评论中所写的修复此问题的内容。。。但是Stackoverflow不让我在48小时内发布我自己问题的答案,所以我的答案被隐藏在一条“小字”评论中。我已经勾选了你的答案,因为它是相同的,并且是正确的答案,这对于访问这个问题的其他人来说将更加明显。非常感谢你的回复。感谢穆罕默德,是的,这是我在之前的评论中所写的,修复了这个。。。但是Stackoverflow不让我在48小时内发布我自己问题的答案,所以我的答案被隐藏在一条“小字”评论中。我已经勾选了你的答案,因为它是相同的,并且是正确的答案,这对于访问这个问题的其他人来说将更加明显。非常感谢你的回复。