解决thinkphp在不支持pathinfo的nginx上的问题

时间:2022-10-18 00:18:25

解决thinkphp在不支持pathinfo的nginx上的问题

2015年08月23日Linux暂无评论阅读 339 views 次

最近使用thinkphp和redis写了一个仿微博的一个小项目,但是当部署到nginx服务器上时竟然都是404,经过百度才发现是因为nginx是不支持pathinfo。于是在网上找到了解决方案:

在项目对应的的配置文件中加入

location / { 

    if (!-e $request_filename) { 

       rewrite ^(.*)$ /index.php?s=$1 last;  break; 

     } 

}

这段代码但一定要放在

location /{

}

然后将location ~ .+\.php的内容修改如下

location ~ .+\.php {
     25                       fastcgi_pass default_ups;
     26                       fastcgi_index index.php;
     27                       include fastcgi_params;
     28
     29               set $path_info "";
     30               set $real_script_name $fastcgi_script_name;
     31                   if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
     32                   set $real_script_name $1;
     33                   set $path_info $2;
     34               }
     35               fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
     36               fastcgi_param SCRIPT_NAME $real_script_name;
     37               fastcgi_param PATH_INFO $path_info;
     38
     39
     40
     41          }

并且项目配置下url模式改为2:'URL_MODEL'=>2