来源:未知 时间:2015-10-15 15:36 作者:xxadmin 阅读:次
[导读] 其实,要解决nginx不支持pathinfo的问题,有两个解决思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo。为了使问题简单化,我选择了第一种方式,因为就第二种方...
其实,要解决nginx不支持pathinfo的问题,有两个解决思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo。为了使问题简单化,我选择了第一种方式,因为就第二种方式,我查了很多资料,发现大家的方法不尽相同,有的还差别很大,容易造成误导,所以我选择从简出发,选择普通模式,虽然有一定的风险。当把index.php对应的前台代码修改完毕之后,发现前台基本正常,可是后台仍然出现重定向的问题。折腾了半天之后,我才想到看一下日志文件,原来是编辑器的问题,看来日志文件真的很重要,以前一直不重视。在config.php文件的第一行出现了输出, var url=system.php?m=Login&a=doLog; $.post(url,{staffname:$staffname,staffpwd:$staffpwd,verifycode:$verifycode},function(data){ if(data==codeerr){ alert(验证码错误!); }else if(data==authempty){ alert(请输入用户名或密码!) }else if(data==autherr){ alert(用户名或密码错误!); }else if(data==success){ alert(登录成功!); location.href="http://www.php1.cn/"> <br> 当然,此为普通模式下的访问方式,如果是pathinfo的话,只需要把红色部分如下修改即可<br> <br> <pre class="brush:java;">var url=doLog; $.post(url,{staffname:$staffname,staffpwd:$staffpwd,verifycode:$verifycode},function(data){ if(data==codeerr){ alert(验证码错误!); }else if(data==authempty){ alert(请输入用户名或密码!) }else if(data==autherr){ alert(用户名或密码错误!); }else if(data==success){ alert(登录成功!); location.href="http://www.php1.cn/"> <br> 2.下载文件的时候,总是莫名多出许多html的东西,原因是缓冲区没有清空,可以通过以下代码进行修改,不过这种方式实际上是下载的仍然是html格式的文件,只不过改了一下后缀名为xls而已,因而用excel打开的时候会提示格式问题,忽略即可。同时需要注意使用 icov()函数转换编码,因为xls默认编码格式并非utf-8.<br> <br> <pre class="brush:java;">ob_start(); ob_end_clean(); Header( Content-type: application/octet-stream); Header( Accept-Ranges: bytes ); Header( Content-type:application/vnd.ms-excel;charset=gb2312); Header( Content-Disposition:attachment;filename={$filename}.xls);</pre> <br> 3.在删除文件时会遇到路径问题,因为项目中使用的较多的是相对路径,即相对入口文件而言,但是删除文件则需要使用绝对路径,我并没有找到合适的解决方法,只好用了比较保守的方式,代码如下<br> <br> <pre class="brush:java;">$path=./Public/uploads/; $path=str_replace(\,/,realpath($path)./); //获取绝对路径,并转换分隔符</pre> <br> 4.在配置nginx和php方面,我使用了fastCGI的方式,将如下代码保存为cmd文件,直接点击运行就可以了<br> <br> F:phpphp-cgi.exe -b 127.0.0.1:9000 -c F:phpphp.ini //后面是php文件的路径<br> <br> 然后在nginx的配置文件里加上几句话<br> <pre class="brush:java;">location ~ .php/?.* { root myapplications; 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_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; }</pre> 转载请注明来源:<a href="http://www.php1.cn/Content/Zai_Nginx_ShangBuShu_ThinkPHP-_JieJue_Pathinfo_WenTi.html" title="在Nginx上部署ThinkPHP,解决Pathinfo问题">在Nginx上部署ThinkPHP,解决Pathinfo问题</a><br><a href="http://www.php1.cn/Content/Zai_Nginx_ShangBuShu_ThinkPHP-_JieJue_Pathinfo_WenTi.html" title="在Nginx上部署ThinkPHP,解决Pathinfo问题">http://www.php1.cn/Content/Zai_Nginx_ShangBuShu_ThinkPHP-_JieJue_Pathinfo_WenTi.html</a></pre> |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com