Php Codeigniter,HMVC:MX_路由器从未被调用,导致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中什么似

我正在使用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错误:

    // 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版本上迁移了整个网站,现在可以正常工作了