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服务器,竟然好了!好了!!!!很是神奇啊。。。。

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

时间: 2024-11-06 22:15:25

Apache本地环境下出现循环重定向的相关文章

django使用mysql (本地环境下)

本博文事例使用的django版本是1.4.0(最近在使用sae,没办法,只好从1.7.1撤了回来).不过原理大概都是相仿的吧. django支持多种数据库管理工具,如mysql, postgresql, sqlite, 和oracle.其中sqlite是内置在python中的,所以如果使用sqlite的话,就不必进行相关配置,尽情地使用python来管理即可,当 然也就不用看本博文了. 本博文就以mysql为例,来演示 “本地环境下 (与云环境对应),django使用mysql的步骤”  (首先

CAS与MVC集成下的“循环重定向”分析

公司项目组同事最近开发部署SSO单点登录:要求所有系统登录都切换到SSO登录,陆续上了几个系统都运行正常:公司内部系统都是.net项目 因此都是利用 DotNetCasClient 客户端接SSO. 而我负责的项目部署后 登录时却偶尔出现循环重定向问题:临时的解决办法就是重启站点或修改下config文件: 但这治标不治本:基本上把网上能查到的都了,有两篇文章转发量相当大 一是园里 刑少 同学的<CAS 与.net 集成的 “循环重定向”问题分析> 二是360文档中在PerformHttpGet

Apache本地环境部署

1.更改host文件 更改host文件,http请求相应域名,指向本地服务器 #本地环境部署 127.0.0.1 account.dev.com 127.0.0.1 user.dev.com 2.配置httpd-vhosts.conf 在本地服务器内,寻找指定文件目录 <VirtualHost *:80> ServerName localhost documentRoot "D:/ruanjian/phpstudy/WWW" </VirtualHost> #用户

Nginx和Apache共存环境下apache获得真实IP

自从Nginx出现以后,我们都喜欢让 Nginx 跑在前方处理静态文件,然后通过 proxy 把动态请求过滤给 apache.这么有个问题,跑在后方 apache 上的应用获取到的IP都是Nginx所在服务器的IP ,或者是本机 127.0.0.1 .最明显就是查看 apache 的访问日志.就会见到来来去去都是内网的IP.如果你的应用有诸如,“单个IP不能重复登陆”,“单个IP注册相隔n分钟”... 之类用于IP判别的安全规则.这么就麻烦了....但还好,你可以通过修改 nginx proxy

wampserver环境下,apache本地下设置多个域名

Apache在安装之后默认只是指向一个站点,即127.0.0.1,如果要进行多站点的配置,需要更改一些配置. 步骤.方法: 1,)让Apache在启动时能加载虚拟主机模块. 打开Apache安装目录下conf/httpd.conf文件,找到下面两行文字,把最前面的 # 号去掉,然后保存. #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule rewrite_module modules/mod_rewrite.

Win7系统64位环境下使用Apache——Apache2.4整合Tomcat与mod_jk

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/70398091 之前的几篇文章: Win7系统64位环境下使用Apache--Apache2.2下载 Win7系统64位环境下使用Apache--Apache2.2安装及常见问题解决 Win7系统64位环境下使用Apache--Apache2.4版本安装及卸载 Win7系统64位环境下使用Apache--下载mod_jk 这几篇文章分别讲解了Apache以及mod_jk的下载,今

windows环境下安装apache及使用apache搭建反向代理

一.配置Apache平台软件 1.下载apache软件 http://httpd.apache.org/ 从Apache官网下载windows安装版的Apache服务器了,现在分享给大家. 2.方法/步骤如下: 2.1.进入apache服务器官网http://httpd.apache.org/,这里我们以下载稳定版的httpd 2.2.29为例,点击download. 2.2.download.cgi页面,往下翻找到2.2.29版本,其中有两个下载选项 Source: httpd-2.2.29.

Linux环境下Apache配置多个虚拟主机挂载多站点同时运行

这样一种场景:我们有一台服务器:但是想挂多个网站:那么Apache下配置虚拟主机可以满足这个需求: 比较简单的是基于主机名的配置步骤如下: 示例环境 ip:115.28.17.191 域名:baijunyao.com thinkbjy.com 目录  /var/www/html/baijunyao /var/www/html/thinkbjy 1:修改hosts文件 [[email protected] /]# ifconfig;              //查看ip并记录自己的ip地址 [[

Linux 环境下手工编译安装Apache

手工编译安装Apache 实验准备: 1.VMwore 12 环境下Red Hat 6.5版本虚拟机一台 2.相关软件包:apr.apr-util.httpd 备注:apache官网下载http://www.apache.org/ 将实验所需的软件包下载好,并解压到指定文件夹 `` 一.Apache安装 1.首先解压软件包http.apr.apr-util(支持Apache上层应用跨平台,提供底层接口库)至/opt目录下 tar xzvf http-2.4.2.tar.gz -C /opt ta