我在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文件。我仍然得到错误。
答案 0 :(得分:4)
对于有这个问题来到这里的其他人来说,这是CodeIgniter本身的一个错误,它与404页面无法包含在子文件夹中有关。
答案 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
。