首页自动跳转然后浏览器报错跳转次数过多

2015-05-09 09:56:20
hainuo
3651
最后编辑:hainuo 于 2015-08-08 00:47:44
简介:前台首页忽然间就不能用了怎么办,谷歌浏览器报错此网页包含重定向循环ERR_TOO_MANY_REDIRECTS
当这个时候我们需要做的是登录到后台或者直接到数据库中修改一个配置信息的值![blob.png](/ueditor/php/upload/image/20150509/1431137032395462.png "1431137032395462.png")犯错原因:对opencenter的不熟悉犯错过程:1、安装系统后将默认首页Url填写为Admin/Index/Index2、后来因为需要默认打开Home/Index/index更改为Home/Index/index研究源代码发现1、这里的默认首页Url是一个伪默认首页Url。先上代码```namespace Home\Controller;/** * 前台首页控制器 * 主要获取首页聚合数据 */class IndexController extends HomeController{    //系统首页    public function index()    {        hook('homeIndex');        $default_url = C('DEFUALT_HOME_URL');//获得配置,如果为空则显示聚合,否则跳转        if ($default_url != '') {            redirect(get_nav_url($default_url));        }        $this->display();    }}```可以看到倒数第四行代码那个redirect的出现大家应该就清楚了,opencenter还是默认的是Home/Index/index为首页,当设置了```C('DEFUALT_HOME_URL')```就表示要跳转了。  这时候有人就要问我看过config. php中不存在这个配置啊这是因为这个配置是写进数据库的```class HomeController extends Controller{    /* 空操作,用于输出404页面 */    public function _empty()    {        $this->redirect('Index/index');    }    protected function _initialize()    {        /*读取站点配置*/        $config = api('Config/lists');        C($config); //添加配置        if (!C('WEB_SITE_CLOSE')) {            $this->error('站点已经关闭,请稍后访问~');        }    }```可以看到在HomeController中进行了初始化,初始化的时候将系统的配置给加载进来了;具体的方法需要见`common/api/configapi/lists`2、既然是伪跳转 就能够看到为啥找不到页面了是因为`Home/Index/index`跳转到`Home/Index/index`造成了无限制跳转
发表评论
叁 减 捌 =
评论通过审核后显示。