【问题标题】:HMVC Modular Extension not working in remote serverHMVC 模块化扩展在远程服务器中不起作用
【发布时间】:2015-12-24 20:57:49
【问题描述】:

我使用 Codeigniter 完成了一个小项目。它在 localhost(xampp 服务器)中运行良好,但在远程服务器中上传后显示“404 Page Not Found”错误。我找不到我在哪里做错了。我正在使用 MX Modular 扩展和 Codeigniter 版本 2.1.2

config.php

$config['base_url'] = 'http://example.com/projectname';

路由.php

$route['default_controller'] = "frontend";

.htaccess(根文件夹)

    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php/$1 [L]
    </IfModule>

应用程序 -> 模块 -> 前端 -> 控制器、模型、视图

应用程序 -> 模块 -> 管理员 -> 控制器、模型、视图

frontend.php(控制器)

class Frontend extends MY_Controller{   
 function __construct(){
    parent::__construct();  
}

function index(){       
    $data['main_content'] = 'frontend';
    $this->load->view('page', $data);
} }

请帮助我摆脱这个问题。提前致谢

【问题讨论】:

  • 在 MY_Controller 上扩展 MX_Controller,如 class MY_Controller extends MX_Controller {} 和文件名 MY_Controller.php
  • 你的路由应该是$route['default_controller'] = "module_name/controller_name/function";函数可以是索引等
  • 同样在基本网址中,所有方式都可以以 / 结尾,例如 $config['base_url'] = 'http://example.com/projectname/';
  • 如果您没有 MY_Controller 也只需扩展控制器,如 class Frontend extends MX_Controller {} 文件名 Frontend.php
  • 我尝试了所有可能的选项,但仍然无法正常工作。我需要更改 .htaccess 文件中的任何内容吗?它在本地服务器上运行良好,但在远程服务器上传后出现“404错误”。我从 (github.com/degt/Codeigniter-HMVC-example) 这个代码开始。

标签: php .htaccess codeigniter codeigniter-hmvc


【解决方案1】:

所有模块文件夹和类的首字母必须大写。

project
---applications
-----modules
-------Somemodule
---------controller
-----------Somemodule.php
---------model
------------Mdl_somemodule.php
---------views

当你调用任何模块函数时,它应该是

Modules::run('Somemodule/somefuntion');

基本上各方面的控制器名称和模块文件夹名称都必须以大写字母开头。

无论如何,codeigniter 3.0 都是强制性的。

如果在 LAMP (Linux) 服务器中未遵循此约定,则会引发 404 错误,尽管它在 WAMP(Windows) 服务器中可以正常工作。 linux 文件名中的原因是区分大小写的。

**例如: $route['default_controller'] = "前端";

应该是

$route['default_controller'] = "前端";**

【讨论】:

  • 感谢您的帮助,但问题仍未解决。 mysite.com/index.php/welcome 运行成功,但 frontend 模块没有运行。我已经开始使用模块化扩展 github.com/degt/Codeigniter-HMVC-example 。你能检查一下这有什么问题吗?我尝试上传从上面链接下载的 zip 文件,它没有在服务器中运行并显示 404 Page Not Found 错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
  • 2015-09-19
  • 2015-09-05
相关资源
最近更新 更多