发现问题:

使用ThinkPHP3.2.2在nginx部署网站,设置URL_MODEL=2,使用U方法在本地生成的链接形如:/public/index

但是在部署在nginx上却出现了问题 其中的URL生成了./public/index

通过追寻ThinkPHP源码在ThinkPHP.php文件中发现了如下代码:

if(IS_CGI) {

//CGI/FASTCGI模式下

$_temp = explode('.php',$_SERVER['PHP_SELF']);

define('_PHP_FILE_', rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));

}else {

define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'],'/'));

}

这是问题的根源

访问:http:www.xxx.com/public/index

在apache下$_SERVER['PHP_SELF']显示./index.php/public/index

而在nginx中显示空白

访问:http:www.xxx.com/index.php/public/index

在apache下$_SERVER['PHP_SELF']显示./index.php/public/index

而在nginx中显示/public/index

最后发现是在nginx开启PATH_INFO时出现了奇异。

我的nginx 中PATH_INFO段的配置是:

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

set $path_info $fastcgi_path_info;

fastcgi_param PATH_INFO $path_info; #只要设置了这行PHP_SELF返回的就出问题

try_files $fastcgi_script_name =404;

php server phpself,nginx中的PATH_INFO为什么会影响$_SERVIER['PHP_SELF']相关推荐

  1. php_self nginx,nginx中的PATH_INFO为什么会影响$_SERVIER['PHP_SELF']

    发现问题: 使用ThinkPHP3.2.2在nginx部署网站,设置URL_MODEL=2,使用U方法在本地生成的链接形如:/public/index 但是在部署在nginx上却出现了问题 其中的UR ...

  2. Nginx 设置,设置已经解析的域名,在nginx中没有定义相应server时的默认访问

    场景介绍: 因为业务需求,我们需要对域名进行解析,这里我对域名进行了如下解析 但是,因为业务需求,我可能在nginx中只定义了kuman.xiaobudiu.top 和 www.xiaobudiu.t ...

  3. 在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

    看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you d ...

  4. http响应Last-Modified和ETag以及Apache和Nginx中的配置

    基础知识 1) 什么是"Last-Modified"? 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属 ...

  5. Nginx中server_name 参数详解

    Nginx中的server_name指令主要用于配置基于名称的虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: server {list ...

  6. CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据

    1.下载OpenResty和Redis OpenResty下载地址:wget http://openresty.org/download/ngx_openresty-1.4.3.6.tar.gz Re ...

  7. 从一起丢包故障来谈谈 nginx 中的 tcp keep-alive

    一.故障 基本架构如图所示,客户端发起 http 请求给 nginx,nginx 转发请求给网关,网关再转发请求到后端微服务. 故障现象是,每隔十几分钟或者几个小时不等,客户端就会得到一个或者连续多个 ...

  8. java pathinfo,nginx下支持PATH_INFO的方法实例详解

    本文实例分析了nginx下支持PATH_INFO的方法.分享给大家供大家参考,具体如下: 要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pa ...

  9. nginx中的rewrite用法及实例

    本文转载自http://blog.csdn.net/xy2204/article/details/47749405,本来想自己总结的,但还是觉得人家写的更好一些,所以就转载下来.最下面附有我的一个小例 ...

最新文章

  1. 在windows中创建一个影子用户
  2. 原生ajax的post操作
  3. 【Python】SyntaxError: unexpected EOF while parsing
  4. Oracle 监听器日志配置与管理
  5. boost::safe_numerics模块实现测试自定义异常的测试程序
  6. pcb地线应该不应该做成环路_干货|图文详解EMC的PCB设计技术
  7. 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制
  8. α稳定分布噪声基本原理及基于Chambers Mallows Stuck算法生成噪声并对信号加噪
  9. 【爱心代码大全】——情人节表白代码送给她属于我们程序员的浪漫
  10. pytorch元素相乘_bert_pytorch学习(1)
  11. LiveLayout
  12. Android 中关于Cursor类的介绍
  13. 容器精华问答 | Docker是否比虚拟技术要好?
  14. Unity和UE4两大游戏引擎,你该如何选择?
  15. js中继承的方法总结(apply,call,prototype)
  16. 大神f1 刷原生android,兼容多种ROM包 酷派大神F1堪称刷机神器
  17. php处理微信weui图片上传
  18. ADS1220 24位高精度ADC芯片驱动
  19. 怎样做好邮箱安全,什么邮箱安全又好用,如何安全管理邮箱
  20. 10步搞定App内测发布(蒲公英内测平台)

热门文章

  1. python排序-堆排序
  2. (转)C#中的委托(Delegate)和事件(Event)
  3. Android 摇一摇(二)
  4. python 字符集编码设置(精华)
  5. WP7 Tip:改变启动页
  6. 千字14图--Python慎用assert语句阻止代码执行
  7. 微课|中学生可以这样学Python(例5.6、例5.7):集合应用
  8. 大学生们颤抖吧,中学生已经开始学Python了!
  9. Python可以这样学(第六季:SQLite数据库编程)-董付国-专题视频课程
  10. 输入234输出432的c语言程序,C程序设计第1-4章习题集