手机版

解决nginx不支持thinkphp中pathinfo的问题

时间:2021-09-09 来源:互联网 编辑:宝哥软件园 浏览:

下面小编将以文字和代码的方式给大家详细讲解。具体内容如下:

其实要解决nginx不支持pathinfo的问题,有两种解决方案,一种是不使用pathinfo模式,另一种是修改nginx的配置文件,使其支持pathinfo。为了简化问题,我选择了第一种方式,因为在第二种方式中,我查看了大量的数据,发现每个人的方法都不一样,有些方法差异很大,很容易导致误导,所以我选择从简单性出发,选择普通模式,虽然有一定的风险。修改index.php对应的前景代码后发现前景基本正常,但背景还是重定向了。我花了很长时间查看日志文件。原来是编辑的问题。看来日志文件真的很重要,我以前从来没有关注过。输出出现在config.php文件的第一行。

在崇高,物料清单标题通常被添加到UTF-8文件。这个BOM表头在窗口下通常是不可见的,可以直接在Linux下查看。它通常显示为乱码字符,因此您可以删除该字符,或者只需在第一行按enter键,然后将其删除。在这里,背景基本上是可访问的。

1.当我登录时,我通过外部js文件发送Ajax请求进行验证。我在js和ThinkPHP模块函数的通信中遇到了一些问题。不知道怎么写正确的路径,没有找到相关信息。我只能尝试各种各样的东西。幸运的是,我找到了解决办法。通过直接带来条目文件名,

var url='system.php?m=Logina=DoLog ';$.post (URL,{'staffname' : $ staffname,' staffpwd ' : $ staffpwd,' verifycode' : $ verifycode},function(data){ if(data==' codeerr '){ alert('错误的验证码!');} else if(data==' auth empty '){ alert('请输入用户名或密码!')}else if(data=='autherr'){ alert('错误的用户名或密码!');}else if(data=='success'){ alert('登录成功!');location.href='system.php?m=Indexa=index ';//访问主页}当然,这是正常模式下的访问模式。如果是pathinfo,您只需要修改红色部分,如下所示

var url=' doLog$.post (URL,{'staffname' : $ staffname,' staffpwd ' : $ staffpwd,' verifycode' : $ verifycode},function(data){ if(data==' codeerr '){ alert('错误的验证码!');} else if(data==' auth empty '){ alert('请输入用户名或密码!')}else if(data=='autherr'){ alert('错误的用户名或密码!');}else if(data=='success'){ alert('登录成功!');location.href='./Index/Index ';//跳转到主页,访问其他模块。2.下载文件的时候,总有很多html的东西莫名其妙,因为缓冲区不是空的,可以用下面的代码修改。但是,实际上,这种方法是下载html格式的文件,只是将后缀改为xls。因此,在excel中打开时,会出现格式问题的提示,可以忽略。同时要注意使用icov()函数来转换编码,因为xls的默认编码格式不是utf-8。

ob _ start();ob _ end _ clean();标题(“内容类型:应用程序/八位字节流”);标头('接受-范围:字节');标题(' Content-type : application/vnd . ms-excel;charset=GB 2312 ');标题('内容-处置:附件;文件名={$filename}。xls’);3.删除文件时,会遇到路径问题,因为项目中使用了更多的相对路径,也就是相对于条目文件,但是删除文件需要绝对路径。我没有找到合适的解决方案,所以我不得不按照如下保守的方式复制代码:$path='。/Public/uploads/';$ path=str _ replace(' a target=' _ blank ' href=' file ://' style=' color : RGB(51,119,170);text-decoration:none'\\ ','/',realpath($path)。//a’;//获取绝对路径并转换分隔符

4.在配置nginx和服务器端编程语言(专业超文本预处理器的缩写)方面,我使用了fastCGI的方式,将如下代码保存为煤矿管理局文件,直接点击运行就可以了f : \ PHP \ PHP-CGI。exe '-b 127。0 .0 .1:9000-c ' f : \ PHP \ PHP。ini '//后面是服务器端编程语言(专业超文本预处理器的缩写)文件的路径然后在nginx的配置文件里加上几句话

位置~ \。php/?* {根myapplicationsfastcgi _ pass 127。0 .0 .1:9000;index.php指数;fastcgi _ param SCRIPT _ FILENAME $ document _ root $ fastcgi _ SCRIPT _ name;包括fastcgi _ params#定义变量$path_info,用于存放pathinfo信息设置$ path _ info#定义变量$real_script_name,用于存放真实地址设置$ 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;} 以上内容是针对在Nginx上部署ThinkPHP,解决Pathinfo问题,希望能够帮助到大家。

版权声明:解决nginx不支持thinkphp中pathinfo的问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。