thinkphp3.2版本url访问:总是走默认文件默认方法

这两天帮朋友改动thinkphp项目

刚开始配置项目,发现thinkphp总是走默认的模块默认的文件默认的方法,不管url怎么修改都不行,都是访问默认的,一开始我以为是代码写错了,跟了无数个断点后发现不是代码的问题,是thinkphp的url访问问题 http://localhost:9999/index.php?c=Read&a=index 这样的URL是能正常访问我自己的控制器和操作的,那问题就在于我的thinkphp不支持PATHINFO方式了!

再看3.2的开发手册,原来是低版本的nginx不支持

解决直接贴代码:

#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo  

location ~ .*\.php
                        {
                                try_files $uri =404;
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fastcgi.conf;

                                set $path_info "";
                                set $real_script_name $fastcgi_script_name;

                                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                                        set $real_script_name $1;
                                        set $path_info $2;
                                }
                                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
                                fastcgi_param SCRIPT_NAME $real_script_name;
                                fastcgi_param PATH_INFO $path_info;
                        }

猜你喜欢

转载自my.oschina.net/u/1858920/blog/910154
今日推荐