CodeIgniter控制器功能未触发

时间:2015-08-31 03:15:13

标签: php codeigniter codeigniter-2 codeigniter-routing

在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]
  1. 已启用错误报告,并且未触发任何错误。环境定义为索引文件上的开发。

2 个答案:

答案 0 :(得分:1)

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

如果有,请检查<Directory "C:/PATH/TO/YOUR/APP">指令中的httpd.conf文件,该文件应存在AllowOverride All

答案 1 :(得分:0)

database.php中缺少大括号会破坏整个应用程序而不会触发错误消息。对不起,因为没有人能想到它。这不是我预期会导致此问题的错误类型,因为我验证了环境是开发的,并且我在修复此问题时触发了许多其他错误。

如果其他人碰到这个,只知道在任何配置文件中都可能是一个简单的错误。

谢谢大家。