CodeIgniter 控制器功能未触发

Posted

技术标签:

【中文标题】CodeIgniter 控制器功能未触发【英文标题】:CodeIgniter controller functions not triggered 【发布时间】:2015-11-25 00:44:33 【问题描述】:

在 CodeIgniter 中,我的 url someurl.com/test/ 不会在控制器类中执行任何操作。请看一下并告诉我是否有您能想到的可能会阻止执行 CI_Controller 在这里或我应该看的地方。

例如下面的

some.testurl.com/test/hi/Bob
some.testurl.com/test
some.testurl.com/test/hi

全部显示:

Above class
Below class

编辑: 我相信我的问题在于我如何尝试运行两个单独的应用程序。一个位于testurl.com,另一个位于some.testurl.com,其中some.testurl.com 的目录是testurl.com 所在目录的子文件夹。它们都起作用的正确方法是什么?

更新: 将子域移到其他 CodeIgniter 应用程序的目录之外并没有以任何方式改变行为。 CodeIgniter 控制器不做任何事情。

这是我的代码:

<?php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');

    echo "Above class<br>";

    class Test extends CI_Controller 
    public function __construct() 
        parent::__construct();
        $this->load->model('mod_login');
        $this->load->helper('date');

        
//443 replace with 482
    function index() 
        echo "Index function";
    

    function hi($name)
    
        echo "Hi".$name."!";
    


echo "Below class<br>";
?>

这是我的 .htaccess 文件:

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|common|ico|database_backup|images|img|js|scripts|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
    已启用错误报告,并且未触发任何错误。环境定义为索引文件上的开发。

【问题讨论】:

你的控制器文件很好。我猜你可能在帮助文件或模型文件上有错误。也检查这些文件。您可以启用错误报告并检查错误。 这是否工作 someurl.com/index.php/test/ 你好,修正者。当我尝试得到 CI 生成的 404 错误时。 【参考方案1】:

database.php 中缺少的大括号会破坏整个应用程序,而不会触发错误消息。我很抱歉,因为没有人能猜到。这不是我预期会导致此问题的错误类型,因为我验证了环境是开发环境,并且我在寻求解决此问题的过程中触发了许多其他错误。

如果其他人遇到这种情况,只要知道这可能是任何配置文件中的一个简单错误。

谢谢大家。

【讨论】:

【参考方案2】:

这可能是 mod_rewrite 问题。检查您的 php 信息以查看该模块是否已安装并在 apache 服务器上运行。

如果有,请检查 &lt;Directory "C:/PATH/TO/YOUR/APP"&gt; 指令中的 httpd.conf 文件,它应该存在于 AllowOverride All

【讨论】:

感谢您的宝贵时间,但是 mod_rewrite 已经可以正常工作了。

以上是关于CodeIgniter 控制器功能未触发的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter,从不直接调用视图,有人可以解释一下

CodeIgniter 404 未找到控制器

Codeigniter - 404 页面未找到

codeigniter 4 设置会话变量 $session = \Config\Services::session();全球

Codeigniter:将数据传递给查看未定义的变量

要使用codeigniter框架还是标准的php? [关闭]