您的位置:首页 > 运维架构 > Nginx

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

2016-03-08 19:46 676 查看

解决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 /{

}



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

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
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: