解决thinkphp在不支持pathinfo的nginx上的问题
最近使用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