zoukankan      html  css  js  c++  java
  • 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("
    ", "
    "), '', $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服务器,竟然好了!好了!!!!很是神奇啊。。。。

    希望各位大神们道出其中的奥秘!

  • 相关阅读:
    GitLab 重置认证和添加账号缓存
    PHP 正则匹配IP
    git 删除指定版本
    PostgreSQL 9.2 日期运算
    postgre 已有字段修改为自增
    postgresql 导入导出
    PHP TS 和 NTS 版本选择
    background-image属性的设置
    SQLServer 附加数据库后只读或报错解决方法
    IIS 6.0 发布网站使用教程
  • 原文地址:https://www.cnblogs.com/angellating/p/5853903.html
Copyright © 2011-2022 走看看