Codeigniter 3.0.6 hmvc不适用于单个模块

时间:2016-06-03 05:37:48

标签: php codeigniter-3 hmvc

你好朋友杀了我,请帮助我。实际上我正在尝试在codeigniter 3.0.6中设置HMVC,我已经设置了,因为我看了教程,但它无法正常工作。每当我调用我的控制器显示404页面未找到。 我在这里描述我做了什么。

  1. 使用Branch从wiredesignz下载模块化hmvc软件包 3.0.6
  2. 提取下载的档案。将文件从核心目录复制到CodeIgniter的应用程序/核心目录,并将文件从第三方/ MX复制到CodeIgniter的应用程序/第三方/ MX。

  3. 在应用程序(应用程序/模块)

    下创建一个名为modules的新文件夹

    __ application

    __模块

    __首页

    __控制器

     __Home.php
    

    __模块

     __home.php
    

    __观点

     __home.php
    
  4. 这里安装完成。现在我正在运行http://localhost/code_hmvc/index.php/Home/Home。它说404 Not Found。

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,最后我发现它是一个命名PB& a .htaccess配置错误:

命名

请注意许多教程解释了它如何与本地环境中的xamp(用于Windows的apache服务器)一起工作 - 大部分不区分大小写。

例如:某些tut会建议您使用类home.php创建Home文件。很好,但起初对我不起作用:当我在Linux下运行时,我必须将我的文件从home.php重命名为Home.php才能使其正常工作。

在您的示例中,您的conrtoller文件名称为 h ome.php ,这意味着只有在调用 <时您的类才会起作用em> h ome 而不是 H ome 如果你在linux下运行(您应该更改文件命名,因为大写字母是常规的!)

  • 确保您的主控制器(调用模块)扩展了MX_Controllers。
  • 还要确保您的控制器“home”扩展MX
  • 避免使用您的网址index.php/Home/Home中的大写字母index.php/home/ - 如果模块的名称与控制器名称相同,则可以直接调用

htaccess的

最后但并非最不重要的是,在找到正确的.htaccess以摆脱HMVC中的“index.php”并解决控制器/功能的重复(/ home / home)之前,我花了很长时间

找不到我拍摄的原始网站,但这段代码对我有用

Options -Indexes
Options +FollowSymLinks

# Set the default file for indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>

    # activate URL rewriting
    RewriteEngine on

    # do not rewrite links to the documentation, assets and public files
    RewriteCond $1 !^(index\.php|public|robots\.txt)

    # do not rewrite for php files in the document root, robots.txt or the maintenance page
    RewriteCond $1 !^([^\..]+\.php|robots\.txt|sitemap\.xml)

    # but rewrite everything else
    RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>

    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.

    ErrorDocument 404 index.php

</IfModule>

<强>!警告!:所有人都说,我对上述配置有疑问:我无法让modules::run()工作,modules::load()工作正常...... see here了解详情