当index.php被移动时,如何为Codeigniter 2.1.*使用HMVC?

当index.php被移动时,如何为Codeigniter 2.1.*使用HMVC?,codeigniter,mamp,codeigniter-hmvc,Codeigniter,Mamp,Codeigniter Hmvc,我正在尝试使用index.php在网站根目录中的“public”文件夹/Applications/MAMP/htdocs/public/中构建CodeIgniter应用程序。我已经将vhosts等设置为指向这个index.php文件。我想采用基于模块的方法,因此最终使用了。我将核心文件和第三方文件放在相应的文件夹中,并在应用程序文件夹中创建了一个模块文件夹。然后,我在modules文件夹中创建了一个“login”模块,以及所需的“controllers/login.php”、“models”和“

我正在尝试使用index.php在网站根目录中的“public”文件夹
/Applications/MAMP/htdocs/public/
中构建CodeIgniter应用程序。我已经将vhosts等设置为指向这个index.php文件。我想采用基于模块的方法,因此最终使用了。我将核心文件和第三方文件放在相应的文件夹中,并在应用程序文件夹中创建了一个模块文件夹。然后,我在modules文件夹中创建了一个“login”模块,以及所需的“controllers/login.php”、“models”和“views”

现在,当我尝试加载
http://localhost/login
,我在apache_error.log中得到一个错误日志

File does not exist: /Applications/MAMP/htdocs/public/login
http://localhost
在显示CodeIgniter的欢迎屏幕时工作正常 格尼特

这是路径结构:

application/modules
└── login
    ├── config
    │   └── routes.php
    ├── controllers
    │   └── login.php
    └── views
        └── login.view.php
模块内容/login/config/routes.php

<?php
$route['login'] = 'login';

我终于设法让代码正常工作了。写了一个关于设置的小教程。您可以引用它

您不应该使用modules::run('module/login',$params,$…)而不是$this->load->view吗?试试$application_folder='../application';想想你的应用程序文件夹在哪里,一个想法可能行得通。更新
$application\u folder
。。否则它将无法从
public
folder@Bonatoc-我也试过了。。。我在index()中添加了一条日志消息,但从未到达那里。.路由中的模块文件夹modules/folder/file中的控制器可能还需要添加$route['controllername']“folder/controllername/index”;要使默认控制器或路由在子文件夹中工作,只需在末尾添加索引。必须位于应用程序的模块文件夹中。
<?php
$route['login'] = 'login';
<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/public"
    SetEnv APP_ENV development

    <Directory "/Applications/MAMP/htdocs/public">
        Options Indexes FollowSymLinks Includes execCGI
        AllowOverride All
        Order Allow,Deny
        Allow From All
    </Directory>
</VirtualHost>