CodeIgniter中的错误信息"404页面未找到"

3

我正在使用Codeigniter。 我有一个在 '/core/MY_Controller.php' 中的类 MY_Controller。

class MY_Controller extends CI_Controller
{
   function __construct()
    {
        parent::__construct();
        echo $controller = $this->uri->segment(1);
    }
}

而 \controllers\admin\Login.php 中的类 Login.php

class Login extends MY_Controller{
   function index()
    {
        echo 'login';
    }
}

当我在浏览器中访问http://localhost/codeigniter/admin/login/时,出现404错误。

404 Page Not Found

The page you requested was not found.

有什么想法吗?我做错了什么?谢谢C。

还有一件事,控制器类名应该是class_Controller,在你的Login情况下,它应该是Login_Controller - itzmukeshy7
感谢您的回复,我在这个问题中打错了字,非常抱歉! - hyphens2
问题是CodeIgniter中没有控制器的目录支持; - itzmukeshy7
1个回答

3

技巧

将此代码添加到您的config文件的顶部,也许这个代码可以帮助您。

function __autoload($class)
{
  if (strpos($class, 'CI_') !== 0)
  {
        if (file_exists($file = APPPATH . 'core/' . $class . '.php'))
        {
              include $file;
        }
  }
}

方法

您需要在config文件中设置前缀。

$config['subclass_prefix'] = 'MY_';

.htaccess

     RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

路由

$route['default_controller'] = 'YOUR_CONTROLLER';
$route['404_override'] = '';
$route['admin'] = "admin/login";

登录控制器是否可以使用扩展CI_而不是MY_?@hyphens2 - Maninderpreet Singh
不,我尝试了但它没有起作用。 当我按照这个视频操作时,在5分32秒处出现了错误。 https://www.youtube.com/watch?v=QicydizTCOs&list=PLShhnaMcz_Zy1ipos-PUP9UrJauBkKUza&index=4&nohtml5=False - hyphens2
我在目录\codeiginter中放置了.htaccess文件以删除index.php,为什么http://localhost/codeigniter/admin/login/无法工作?它已经起作用了,非常感谢! - hyphens2
是的,您需要从控制器中删除index.php :) 等我用我的htaccess文件进行编辑@hyphens2 - Maninderpreet Singh
1
@hyphens2 我建议使用 spl_autoload_register() 函数。为什么这样做的解释可以在这个答案中找到。 - Tpojka
显示剩余19条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接