Php Codeigniter,HMVC:MX_路由器从未被调用,导致404错误
我正在使用codeigniter 2.1.3。 我注意到一个很好的模块,名为HMVC(Hierarchy MVC),它允许以分层方式开发MVC,正如名称所示。所以我下载并安装了它 然而,在完成了每个教程中解释的操作之后,我在尝试访问我创建的测试页面时遇到了404错误 在搜索了一段时间后没有成功,我决定安装最新版本的codeigniter(2.2.0)。我遵循了教程,它成功了 我决定尝试比较这两个版本(一个有效,一个不有效),看看调用了哪些源,以及在我的codeigniter v2.1.3中什么似乎失败了 我发现在我的codeigniter版本2.1.3中,发生错误是因为在class/system/core/Router.php的函数_validate_request中,程序到达了函数的末尾,因为它没有找到与URI匹配的控制器类(在本例中,localhost/codeigniter/users:假设检测到我有一个名为users的模块,它应该使用application/modules/users中的控制器来加载页面)。因此程序到达函数show_404()(见下文)并生成404错误:Php Codeigniter,HMVC:MX_路由器从未被调用,导致404错误,php,codeigniter,web,Php,Codeigniter,Web,我正在使用codeigniter 2.1.3。 我注意到一个很好的模块,名为HMVC(Hierarchy MVC),它允许以分层方式开发MVC,正如名称所示。所以我下载并安装了它 然而,在完成了每个教程中解释的操作之后,我在尝试访问我创建的测试页面时遇到了404错误 在搜索了一段时间后没有成功,我决定安装最新版本的codeigniter(2.2.0)。我遵循了教程,它成功了 我决定尝试比较这两个版本(一个有效,一个不有效),看看调用了哪些源,以及在我的codeigniter v2.1.3中什么似
// If we've gotten this far it means that the URI does not correlate to a valid
// controller class. We will now see if there is an override
if ( ! empty($this->routes['404_override']))
{
$x = explode('/', $this->routes['404_override']);
$this->set_class($x[0]);
$this->set_method(isset($x[1]) ? $x[1] : 'index');
return $x;
}
// Nothing else to do at this point but show a 404
show_404($segments[0]);
在检查版本2.2.0(有效版本)中发生的情况时,会使用另一种类型的路由器类:application/third_party/MX/router.php(而不是默认的/system/core/router.php)
我已经安装了application/third_party/MX/Router.php
所以基本上,我的问题是codeigniter没有实例化正确的Router.php文件,但我不明白我做错了什么
有人能帮忙吗
编辑:我逐步将我的站点迁移到codeigniter版本上,HMVC在该版本中工作,同时不断检查是否一切正常。在迁移文件application/config/config.php之前,一切正常。这毕竟是一个配置问题
编辑2:我没有找到问题的根本原因。我最终在codeigniter的新Functional版本上迁移了整个网站,现在可以正常工作了