codeigniter路由有關問題
來源:互聯網
上載者:User
codeigniter路由問題
對codeigniter不太熟悉.尤其路由這塊.現在改一套系統.自己寫的控制器後訪問總是出現“route_error”錯誤;
比方說我寫了個login.php控制器放在controllers/admin目錄下,我直接存取www.abc.com/admin/login 就會出現“route_error.”錯誤。
如果我在route.php加上一行:
$route['admin']="admin/login";
這樣就可以了。但是太麻煩了,我不可能每寫一個控制器就去修改一下route.php吧?!
下面是我的route.php檔案。看不懂以前是什麼意思,大家幫忙看看怎麼設定我才可以正常來寫我的控制器而不影響以前的使用:
$route['default_controller'] = "welcome";
$route['scaffolding_trigger'] = "";
//name-of-school/class-of/firstname-lastinitial/photo-albums/album-name/upload/
$route['([a-zA-Z0-9\-_ ]+)/([a-zA-Z0-9\-_ ]+)/([a-zA-Z0-9\-_ ]+)/(video|photo)\-([a-zA-Z0-9\-_ ]+)/([a-zA-Z0-9\-_ ]+)/([a-zA-Z0-9\-_ ]+)(/([a-zA-Z0-9\-_ ]+))*'] = "user/$4_$5/$7/$8";
$route['([a-zA-Z0-9\-_]+)/school_admin/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)(/([a-zA-Z0-9\-_]+))*'] = "school_admin/$3/$4$5";
$route['([a-zA-Z0-9\-_]+)/group_admin/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)(/([a-zA-Z0-9\-_]+))*'] = "group_admin/$3/$4$5";
//name-of-school/class-of/firstname-lastinitial/games/game-name/
$route['([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)(/([a-zA-Z0-9\-_]+))*'] = "user/$4/$5/$6";
//logout
$route['(logout|login|register)'] = "member/$1";
//404
$route['(games|video-albums|photo-albums|group|admin|groupadmin|yearbook|settings)(/.*)*'] = "error";
------解決方案--------------------
www.abc.com/index.php/admin/login
------解決方案--------------------
queryphp 架構路由可以使用名字
其它設定 可以添加自己定義的路由規則:
C("router")->ruleMaps('logout','/logout', array('controller' => 'auth', 'action' => 'logout'));
C("router")->ruleMaps('signup','/signup', array('controller' => 'auth', 'action' => 'signup'));
C("router")->ruleMaps('profile','/profile/:action', array('controller' => 'profile')); // will call controller "Profile" with dynamic method ":action()"
C("router")->ruleMaps('users','/users/:id', array('controller' => 'users'), array('id' => '[\d]{1,8}')); // define filters for the url parameters
http://code.google.com/p/queryphp/downloads/list