1

我想在 codeigniter 上实现以下 url 结构

http://client.xyz.com/division/controller/controller_fuction

请让我知道如何更改路线文件以满足我的要求。谢谢。

评论 -

我想设置客户端明智的独立数据库,“部门”可能就像部门 1、部门 2。取决于 url 设置和会话将被加载。

4

3 回答 3

1

在配置文件中设置

$config['index_page'] = '';

然后应用 htacess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css|img|js)
RewriteRule ^(.*)$ ./index.php/$1 [L]

这样你就可以像http://client.xyz.com/division/controller/controller_fction

或者你可以使用路由

于 2013-09-27T11:43:53.683 回答
0

您可以创建将扩展 CI_Controller 的 MY_Controller。
每个其他控制器都将扩展 MY_Controller。
然后在 MY_Controller 中,您可以在构造函数中使用它。

$controller = $this->uri->segment(1);
$controller_function = $this->uri->segment(2);

在这里您可以定义 $devisions 或从 config.xml 中获取它。

$division1  =   array('controller1','controller2','controller3');
$division2  =   array('controller4','controller5','controller6');
$division3  =   array('controller7','controller8','controller9');


if(in_array($controller,$division1)){
    //do blah blah
}else if(in_array($controller,$division2)){
    //do other blah blah
}else{
    //do last and final blah blah
}
于 2013-09-27T13:20:24.290 回答
0

您需要创建自己的路由类,CI 让我们可以替换或扩展它的核心功能。只需创建例如

class MY_Router extends CI_Router
{
   //so on ..
}

然后将其保存在application/core文件夹中,然后 CI 将使用您的类而不是默认值。

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

于 2013-09-27T11:38:47.707 回答