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

这两天帮朋友改动thinkphp项目php

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

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

解决直接贴代码:url

#去掉$是为了避免匹配行末,便可以匹配.php/,以实现pathinfo  unix

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;
                        }
相关文章
相关标签/搜索