经过细查是因为__APP__这个常量的值为 ".php"
继续往上找才发现是因为$_SERVER['PHP_SELF'] 没有获取到值.所以造成设置_PHP_FILE_这个常量的值是.php
在ThinkPHP.php中更改如下可解决:
if(!IS_CLI) {
// 当前文件名
if(!defined('_PHP_FILE_')) {
if(IS_CGI) {
//CGI/FASTCGI模式下
$_temp = explode('.php',$_SERVER['PHP_SELF']);
//添加如下
if ($_temp[0] === "")
{
define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'],'/'));
}
else
{
define('_PHP_FILE_', rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));
} //结束添加
}else {
define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'],'/'));
}
}
if(!defined('__ROOT__')) {
$_root = rtrim(dirname(_PHP_FILE_),'/');
define('__ROOT__', (($_root=='/' || $_root=='\\')?'':$_root));
}
} 最佳答案