我是CI的新手需要帮助根据数据库值将URL路由到子域
通过使用通配符规则我已经在服务器上设置了子域,现在我必须检查数据库中是否存在子域,如果该名称存在于db中,那么我已重定向到主控制器,否则我有重定向主站点(默认控制器)
目前我正在检查主控制器索引方法中的子域
$server = explode('.', $_SERVER['HTTP_HOST']);
$domain = $server[0];
$this->usercontroller->checkdomain($domain);
需要帮助我使用路由器(bootstrap方法)更好的方式
答案 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;