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;
                        }
相關文章
相關標籤/搜索