今天将自己代码传到线上服务器,页面上用到很多thinkphp U() 方法生成的链接。本地测试没啥问题,到线上发现链接生成的不对,每个都没有了host
每个链接多个index,然后查看tp的U方法:
$url = __APP__.‘/‘.($module?$module.MODULE_PATHINFO_DEPR:‘‘).implode($depr,array_reverse($var));
是因为__APP__这里的原因,然后找到__APP__赋值的地方:
define(‘__APP__‘,strip_tags(PHP_FILE));
和PHP_FILE有关,继续找
= (,$_SERVER[]); (, (($_SERVER[],,[].),));
最后发现和$_SERVER["PHP_SELF"]有关系,这里问题基本锁定了,最后搜了下,这个值和php.ini的
cgi.fix_pathinfo配置有关系,把cgi.fix_pathinfo=1设置成0就OK了!U方法就正常了
本文出自 “7804265” 博客,请务必保留此出处http://7814265.blog.51cto.com/7804265/1953673
原文地址:http://7814265.blog.51cto.com/7804265/1953673