最近发现一个很奇怪的问题,用了很久的apache+php访问项目,昨天突然不行了,出现了这个
然后我一点点测试,我用的是TP框架,Indexaciton的index中调用框架里的一个redirect函数
public function index() {
/*if(empty($_SESSION['admin']['admin_id'])) {
$this->redirect('Public/login','' , 0,'页面跳转中~');
}*/ if(empty($_SESSION['admin']['admin_id'])) {
if(!checkCookieAdmin()){
$this->redirect('Public/login','' , 0,'页面跳转中~');
}
}
$this->display('Public:index');
}
在tp action.class.php redirect函数中调用redirect
protected function redirect($url,$params=array(),$delay=0,$msg='') {
if(C('LOG_RECORD')) Log::save();
$url = U($url,$params);
redirect($url,$delay,$msg);
}
functions.php 里面的redirect函数
// URL重定向
function redirect($url,$time=0,$msg='')
{
//多行URL地址支持
$url = str_replace(array("\n", "\r"), '', $url);
if(empty($msg))
$msg = "系统将在{$time}秒之后自动跳转到{$url}!";
if (!headers_sent()) {
// redirect
if(0===$time) {
header("Location: ".$url);
}else {
header("refresh:{$time};url={$url}");
echo($msg);
}
exit();
}else {
$str = "<meta http-equiv='Refresh' content='{$time};URL={$url}'>";
if($time!=0)
$str .= $msg;
exit($str);
}
}
这样分析下来,定向都是指向Public中的login的,但是不知道为什么就是不渲染html页面,始终出现循环重定向。
解决的办法:换成了Ngnix服务器,竟然好了!好了!!!!很是神奇啊。。。。
希望各位大神们道出其中的奥秘!