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 服务器上运行。
如果有,请检查 <Directory "C:/PATH/TO/YOUR/APP">
指令中的 httpd.conf 文件,它应该存在于 AllowOverride All
。
【讨论】:
感谢您的宝贵时间,但是 mod_rewrite 已经可以正常工作了。以上是关于CodeIgniter 控制器功能未触发的主要内容,如果未能解决你的问题,请参考以下文章
codeigniter 4 设置会话变量 $session = \Config\Services::session();全球