默认控制器(模块下)未在HMVC下加载,CodeIgniter抛出404错误

默认控制器(模块下)未在HMVC下加载,CodeIgniter抛出404错误,codeigniter,hmvc,hmvc-codeigniter,Codeigniter,Hmvc,Hmvc Codeigniter,刚刚将我的CI从localhost迁移到live。在具有相同设置的localhost上,一切都可以正常工作 下面是routes.php的文件夹/文件结构和内容 -application --controllers ---Home.php --modules ---specs ----controllers -----Specs.php ----models ----views $route['default_controller'] = 'Specs/index'; //$route['def

刚刚将我的CI从localhost迁移到live。在具有相同设置的localhost上,一切都可以正常工作

下面是routes.php的文件夹/文件结构和内容

-application
--controllers
---Home.php
--modules
---specs
----controllers
-----Specs.php
----models
----views

$route['default_controller'] = 'Specs/index';
//$route['default_controller'] = 'Home/index';
$route['404_override'] = 'Errors/show_404';
$route['translate_uri_dashes'] = FALSE;
规范和主控制器都有索引方法。当我加载带有Specs/index作为默认控制器的主页url时,我得到404错误。但是,如果我将默认控制器更改为Home/index,它的加载就可以了。奇怪。在整个网站上,其他一切都正常工作。不明白

该网站是活的,但我不知道如果提供网址是允许的,所以我包括在它的空间。这是UNSECS dott comm。如果不允许url,管理员/Mods可能会删除


谢谢阅读。

试试这个。但最好将standart文件夹用于默认控制器/应用程序/控制器

我认为您在路由方面犯了错误,对于HMVC应该是这样-

$route['default_controller'] = '<folder name>/<controller name>/<function name>';

$route['default_controller'] = 'specs/Specs/index';
$route['default_controller']='/';
$route['default_controller']='specs/specs/index';

请按此操作,希望它能正常工作。

好的。设置它确实有效,但是没有它为什么localhost可以工作呢?如果不先设置文件夹,我在localhost上从来没有遇到过任何问题。当我写这篇文章时,这个没有文件夹的站点的Localhost版本仍然有效。有什么解释吗?谢谢你的修复。谢谢你。投票结果很好,但是因为我的名声不好,所以没有表现出来。虽然解决方案有效,但我不确定这是否是正确的解决方案。谢谢,如果你需要任何其他帮助,请告诉我。你能帮我解决这个问题吗,嗨,我回复了那篇帖子。请检查。您提到的文章涉及控制器文件夹中的子文件夹,与此问题不完全相同。如果相同的设置在localhost上不起作用,但确实起作用,我会按照您的建议使用标准文件夹。此外,如果我们必须使用标准文件夹,那么拥有HMVC的整个目的就失败了。无论如何,谢谢你。感谢你的时间和努力。