CI路由器从数据库检查域

时间:2013-01-28 16:31:00

标签: codeigniter codeigniter-2 codeigniter-url

我是CI的新手需要帮助根据数据库值将URL路由到子域

通过使用通配符规则我已经在服务器上设置了子域,现在我必须检查数据库中是否存在子域,如果该名称存在于db中,那么我已重定向到主控制器,否则我有重定向主站点(默认控制器)

目前我正在检查主控制器索引方法中的子域

   $server = explode('.', $_SERVER['HTTP_HOST']);
   $domain = $server[0]; 
   $this->usercontroller->checkdomain($domain);

需要帮助我使用路由器(bootstrap方法)更好的方式

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但这对我有用。这可能会指向某人正确的方向。请随时向我询问有关代码的具体信息。

//$route['default_controller'] = "welcome";

$ route ['404_override'] =''; 开关($ _ SERVER [ 'HTTP_HOST'])

{

case 'losey.co':

case 'www.losey.co':

    $route['default_controller'] = "dashboard";

break;  

default:
    //This query's the sites table and checks the domain / subdomain and then shows the correct default_controller
    $server = $_SERVER['HTTP_HOST'];
    require_once( BASEPATH .'database/DB'. EXT );
        $db =& DB();
        $db->where('nameshort',  array_shift(explode(".",$server)));
        $db->or_where('domain', $server);
        $query = $db->get( 'sites' );
        //$query = $db->get_where('sites', array('nameshort' => 'test'), 1);

        $result = $query->result();
        foreach( $result as $row )
        {
            $route['default_controller'] = $row->home;
        }
break;