【问题标题】:error "404 Page Not Found" in codeigniter在 codeigniter 中出现错误“404 Page Not Found”
【发布时间】:2016-04-11 03:41:27
【问题描述】:

我正在使用 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;
  • 感谢您的回复,我在这个问题中输入错误,对不起!
  • 问题是codeigniter中没有对控制器的目录支持;

标签: codeigniter


【解决方案1】:

技巧

将此代码添加到顶部的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_ 一起使用? @连字符2
  • 不,我尝试了,但它不起作用。当我关注此视频时,我在 5 分 32 秒内出现错误。 youtube.com/…
  • 定义了你的基本网址??
  • 成功了,非常感谢!我将 .htaccess 文件放在目录 \codeiginter 中以删除 index.php,为什么 localhost/codeigniter/admin/login 不起作用?
  • @hyphens2 我建议spl_autoload_register() 函数。解释为什么可以在this answer中找到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-03
  • 2020-12-05
  • 2016-07-30
  • 2012-09-05
  • 2011-11-09
  • 1970-01-01
相关资源
最近更新 更多