404_override的路由问题

时间:2012-01-17 19:04:17

标签: codeigniter

我在CI 2.02中遇到404_override问题。这是我的默认控制器和覆盖:

$route['default_controller'] = "home/index_controller";    
$route['404_override'] = "misc/site_map";

这行未注释给了我这个错误:

  

无法加载默认控制器。请确保   Routes.php文件中指定的控制器有效。

但是评论说,我收到404错误。因此覆盖中的某些东西会导致问题。我只是不知道是什么。我尝试了各种MY_Router文件但它们没有帮助。有人对我如何解决这个问题有任何建议吗?

我已将.htaccess文件从服务器中删除,然后尝试访问不存在的控制器(http://domain.com/index.php/doesnotexist),从而消除了我的.htaccess文件。我仍然得到错误。

2 个答案:

答案 0 :(得分:4)

对于有这个问题来到这里的其他人来说,这是CodeIgniter本身的一个错误,它与404页面无法包含在子文件夹中有关。

Bug Discussion Including Fix on GitHub

答案 1 :(得分:0)

您忘记添加首次加载网站时将使用的默认控制器,在routes.php中您需要添加此网站,这是必需的,这就是您看到错误被抛出的原因。

$route['default_controller'] = 'index'; // this will need to be changed to your default controller
$route['404_override'] = 'misc/site_map';

编辑:

好的,您必须确保输入要加载的正确的控制器名称作为默认值,例如home.php文件夹中有controllers,您必须输入home作为默认值。 (可选)您可以定义home.php类文件中功能的细分,例如: home/function_name