在nginx中配置pathinfo模式支持thinkphp的URL重写
2023-06-13 09:15:25 时间
最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:
修改nginx.conf,找到server中的location~.php${},修改为location~.php{},并在其中增加以下内容:
set$path_info"";
set$real_script_name$fastcgi_script_name;
if($fastcgi_script_name~"^(.+?.php)(/.+)$"){
set$real_script_name$1;
set$path_info$2;
}
fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name;
fastcgi_paramSCRIPT_NAME$real_script_name;
fastcgi_paramPATH_INFO$path_info;
不过无论我们如何测试,都发现PATHINFO模式总是不能正确运行,就算运行后,{:U}方法也总是出错,打印$_SERVER后发现PHP_SELF总是不对。
但是依然PATHINFO不能正确正常工作,于是我们确定是ThinkPHP的配置问题,发现其实是ThinkPHP的_PHP_FILE的问题,在入口文件index.php中加入配置define("_PHP_FILE_",$_SERVER["SCRIPT_NAME"]);,问题解决。
如果$_SERVER["SCRIPT_NAME"]路径也不对,请先替换为正确的文件路径。
相关文章
- Nginx配置文件(nginx.conf)配置详解
- Apache负载均衡配置(反向代理模式)
- linux配置selinux为许可模式,SELinux工作模式设置(getenforce、setenforce和sestatus命令)…
- Nginx 配置中nginx和alias的区别分析
- CDHD驱动器——ServoStudio配置高创伺服速度模式不转
- centos 7.0双网卡主备和负载均衡模式配置(bond0)
- 驱动开发:WinDBG 配置内核双机调试
- 【Android Gradle 插件】DexOptions 配置 ⑧ ( preDexLibraries 属性配置 | threadCount 属性配置 )
- 配置linux服务器使用证书登录
- Apache环境运行CGI模式配置教程
- SQLServer 错误 7308 因为 OLE DB 访问接口“%ls”配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。 故障 处理 修复 支持远程
- Linux下快速配置Maven环境(linux配置maven)
- Linux下快速配置网卡模式(linux设置网卡模式)
- 你所不了解的静态路由特点及配置
- MSSQL简易配置指南(mssql设置简单模式)
- 哨兵模式下的Redis服务配置(哨兵配置redis)
- Redis集群模式构建高效可靠的分布式系统(redis集群模式下配置)
- 模式Redis哨兵模式配置双保险提高系统容灾(Redis 配置 哨兵)
- 木翼下载系统中说明的PHP安全配置方法
- linux(centos5.5)/windows下nginx开启phpinfo模式功能的配置方法分享
- ubuntu10.04配置nginx+php-fpm模式的详解
- apache下运行cgi模式的配置方法
- SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)