codeigniter默認路由報錯的問題
作者:superhj1987
訪問根url的時候,404錯誤;而訪問homePageindex是正常的。百思不得其解,就去看了一下框架讀取路由配置的代碼??吹絪ystemcoreRouter.php中這行代碼,恍然大悟。
最近在使用codeigniter時遇到一個莫名其妙的bug。如下:
在config/routes配置一個默認路由:
- $route['default_controller'] = "homePage/index";
結果,訪問根url的時候,404錯誤;而訪問/homePage/index是正常的。百思不得其解,就去看了一下框架讀取路由配置的代碼??吹絪ystem/core/Router.php中這行代碼,恍然大悟。
- function _set_routing(){
- ...
- $this->default_controller = ( ! isset($this->routes['default_controller']) OR $this->routes['default_controller'] == '') ? FALSE : strtolower($this->routes['default_controller']);
- ...
- }
這里調用了strtolower把default_controller變成小寫,后面去讀取method和class的時候就會出錯。不知道這是個bug,還是有意為之。
解決辦法就是default controller命名時不要含有大寫字母或者把Router.php里這一行代碼的strtolower去掉。
責任編輯:林琳
來源:
ITeye-博客