最近一个项目中使用了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_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info; 不过无论我们如何测试,都发现PATHINFO模式总是不能正确运行,就算运行后,{:U}方法也总是出错,打印$_SERVER后发现PHP_SELF总是不对。
但是依然PATHINFO不能正确正常工作,于是我们确定是ThinkPHP的配置问题,发现其实是ThinkPHP的_PHP_FILE的问题,在入口文件index.php中加入配置define('_PHP_FILE_',$_SERVER['SCRIPT_NAME']);,问题解决。
如果$_SERVER['SCRIPT_NAME'] 路径也不对,请先替换为正确的文件路径。

最新文章

  1. iOS开发之微信聊天页面实现
  2. Android文件存储
  3. jQuery查看dom元素上绑定的事件列表
  4. Django 初探--Django的开发服务器及创建数据库(笔记)
  5. Linux下使用多线程模拟异步网络通信
  6. CString 与 std::string 相互转化
  7. Android eng版系统烧录
  8. JBOD
  9. Android:后台给button绑定onClick事件、当返回项目到手机页面时提示是否退出APP
  10. python画出心形图
  11. 包装类及 LeetCode 每日一题
  12. git命令的理解与扩展
  13. R语言读取EXCEL文件的各种方法
  14. Eclipse 运行导入的 Java 项目时,Error:A JNI error has occurred
  15. javascript最全最好的判断数组的方法
  16. C Mergeable Stack(list超好用)
  17. 字符IO流
  18. 区分Web Server和应用服务器
  19. python 全栈开发,Day54(node.js初识)
  20. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记

热门文章

  1. Spring MVC 中Ajax返回字符串
  2. Tomcat 关闭时报错
  3. java FileI(O)nputStream为什么比BufferedI(O)utputStream慢?
  4. ADexplorer - 用来查看AD的工具
  5. 转:TCP/IP协议选项——TCP_KEEPALIVE .
  6. ECMAScript和JavaScript的区别,ECMAScript发展更新历史,ECMAScript5和ECMAScript6的新特性及浏览器支持情况,ECMAScript 5/ECMAScript 2015正式发布
  7. .net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇
  8. 如何让iOS模拟器也能测试蓝牙4.0程序?
  9. unity, 不要change Default sharedMaterial
  10. vue2.0实现图片加载失败默认显示图片