Apache本地环境下出现循环重定向
Posted 努力的喵喵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache本地环境下出现循环重定向相关的知识,希望对你有一定的参考价值。
最近发现一个很奇怪的问题,用了很久的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服务器,竟然好了!好了!!!!很是神奇啊。。。。
希望各位大神们道出其中的奥秘!
以上是关于Apache本地环境下出现循环重定向的主要内容,如果未能解决你的问题,请参考以下文章