我在codeigniter上有一个名为的配置项
$config['system_installed'] = TRUE;
或$config['system_installed'] = FALSE;
将其重定向到库中的服务器子文件夹的最佳方法是什么?例如SERVERURI "/" 'install'
设置$config['system_installed'] = FALSE;
会重定向到SERVERURI "/" 'install/index.php'
答案 0 :(得分:0)
据我所知:
/install
URI是一个拥有自己应用程序的目录,独立于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
自毁。