重定向如果项目配置项设置为错误的Codeigniter

时间:2014-05-29 02:18:08

标签: php codeigniter

我在codeigniter上有一个名为的配置项 $config['system_installed'] = TRUE;$config['system_installed'] = FALSE;

将其重定向到库中的服务器子文件夹的最佳方法是什么?例如SERVERURI "/" 'install'

设置$config['system_installed'] = FALSE;会重定向到SERVERURI "/" 'install/index.php'

1 个答案:

答案 0 :(得分:0)

据我所知:

  • /install URI是一个拥有自己应用程序的目录,独立于CodeIgniter
  • 安装过程会更新CodeIgniter config.php文件,并设置$config['system_installed'] = TRUE;

如果您必须这样做,请在application/core中创建名为MY_Controller.php的基本控制器:

http://ellislab.com/codeigniter/user-guide/general/core_classes.html

class MY_Controller extends CI_Controller {
  function __construct()
  {
    parent::__construct();
    if ( ! config_item('system_installed')) redirect('install');
  }
}

您必须将所有控制器更新为ControllerName extends MY_Controller {}

如果要替换整个内容,您甚至可以直接在配置文件中进行重定向(作为唯一内容)。这很脏但是谁在乎,文件只会在您安装应用程序时存在几分钟。


我想建议一个更简单的方法。忘掉$config['system_installed']

在您的根index.php中,只需重定向到/install,即可将其作为唯一代码:

<?php
header('Location: install');
exit;

然后让您的安装过程使用实际的CodeIgniter index.php内容更新您的index.php,而不是更新配置文件。在安装目录中的某处保留CI index.php的虚拟副本(无论如何命名)并使用PHP复制内容,然后在安装后甚至可以进行/install自毁。