| 
 | 
 
对于thinkphp框架项目的访问格式有多种,其中pathinfo是默认的基本访问格式,格式为:http://hostname:port/index.php/模块名/action名/参数1/参数1的值/pathinfo其实就是一个参数,可以通过$_SERVER['PATH_INFO']获得,thinkphp框架通过解析它来找到对应的模块和方法。 
apache服务器默认是支持pathinfo的,但是nginx服务器默认不支持这种格式,需要进行配置,配置方式如下: 
1. 找到ngingx的配置文件nginx.conf 
  在server里的location项, 
修改前为: 
 
 
  location ~ \.php$ { 注:去掉本行的$ 字符 
            root           html; 
            fastcgi_pass   127.0.0.1:9000; 
            fastcgi_index  index.php; 
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
            include        fastcgi_params; 
            注:下面加上一些配置语句 
  } 
 
 
  修改后为: 
 
 
  location ~ \.php { 
            root           html; 
            fastcgi_pass   127.0.0.1:9000; 
            fastcgi_index  index.php; 
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
            include        fastcgi_params; 
            #定义变量 $path_info ,用于存放pathinfo信息 
            set $path_info ""; 
            #定义变量 $real_script_name,用于存放真实地址 
            set $real_script_name $fastcgi_script_name; 
            #如果地址与引号内的正则表达式匹配 
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { 
                    #将文件地址赋值给变量 $real_script_name 
                    set $real_script_name $1; 
                    #将文件地址后的参数赋值给变量 $path_info 
                    set $path_info $2; 
            } 
            #配置fastcgi的一些参数 
            fastcgi_param SCRIPT_NAME $real_script_name; 
            fastcgi_param PATH_INFO $path_info; 
    } 
 
2. 编辑php.ini文件 
   注释掉配置项cgi.fix_pathinfo(前面加;) 
3.重启phpcgi 和 nginx |   
 
 
 
 |