我想在codeigniter上实现以下url结构
http://client.xyz.com/division/controller/controller_fuction
请您告诉我如何更改路径文件以满足我的要求。感谢。
评论 -
我想设置客户端智能的sepearate数据库,'division'可能就像division1,division2。取决于网址设置和会话将被加载。
答案 0 :(得分: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_fuction
那样做OR 你可以使用路由
答案 1 :(得分:0)
您需要创建自己的路由类,CI允许我们替换或扩展它的核心功能。只需创建例如
class MY_Router extends CI_Router
{
//so on ..
}
然后将其保存在application/core
文件夹中,然后CI将使用您的类而不是默认值。
答案 2 :(得分:0)
您可以创建扩展CI_Controller的MY_Controller 每个其他控制器都会扩展MY_Controller 然后在MY_Controller中,您可以在构造函数中使用它。
$controller = $this->uri->segment(1);
$controller_function = $this->uri->segment(2);
您可以在这里定义$ devisions或从配置中获取。
$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
}