我正在滚动我自己的 mvc 框架,从一个前端控制器开始,它正在工作 - 所有请求都通过 /index.php,它正在加载引导文件,例如 router.php。
但是,$_GET 不工作,所以我的 router.php 文件不工作。我的 URL 方案将只是 /controller/view 省略 .php,但我还不能更改 URL,因为我不能 $_GET 将 url 传递给 router.php(以加载正确的控制器和视图)。
我到处搜索解决方案,并在 stackoverflow 上找到了类似的帖子,但建议的修复方法对我不起作用: https ://serverfault.com/questions/231578/nginx-php-fpm-where-are-my-get -参数
这是我的 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_param?
你怎么看错了?
(谢谢)