如何在sourceigniter中从根URL重定向到控制器?

时间:2014-02-12 16:02:04

标签: php codeigniter

我在以下网址下有主视图:

 http://wifi.pocc.cnst.com/cnst/#/mapboard/
 |     root               |cntrl|  view   |       

我的目标是当用户在浏览器中输入内容时http://wifi.pocc.cnst.com自动重定向到http://wifi.pocc.cnst.com/cnst/#/mapboard/

我怎样才能做到这一点?

谢谢,

1 个答案:

答案 0 :(得分:4)

您可能知道请求到控制器的映射是

http://your.domain/index.php/controller/method/arg1/../argn

而没有给出controller/method/args段的任何请求都将路由到默认控制器。

默认控制器在application/config/routes.php中定义,您必须按如下方式更改它:

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

其中my_default_controller显然是您必须设置的控制器,并在其中设置:

public function index()
{

    $this->load->helper('url'); // might actually not be needed
    redirect('cnst/#/mapboard');
}

如果您正在使用默认控制器进行其他操作,您可以考虑:

public function index()
{
    if ($this->input->server('Request_uri') == '/' and $this->input->server('Http_host') == 'my-host')
    {
        $this->load->helper('url'); // might actually not be needed
        redirect('cnst/#/mapboard');
    }
    // your other stuff
}

或者您可能实际在routes.php配置文件中设置了不同的默认控制器:

if ($_SERVER['REQUEST_URI']) == '/' and isset($_SERVER['HTTP_HOST']) and $_SERVER['HTTP_HOST'] == 'my-host')
{
    $route['default_controller'] = 'my_special_controller';
}
else
{
    $route['default_controller'] = 'my_normal_controller';
}

瞧。