Php Codeigniter 3.0.0-未找到错误404页

Php Codeigniter 3.0.0-未找到错误404页,php,codeigniter,model-view-controller,Php,Codeigniter,Model View Controller,这是我的第一个php框架。我的控制器中有一个php文件,它是posts.php,但当我试图运行它localhost/codeigniter/index.php/posts时,它显示错误404 .htaccess内部应用程序文件夹 <IfModule authz_core_module> Require all denied </IfModule> <IfModule !authz_core_module> Deny from all </IfModule

这是我的第一个php框架。我的控制器中有一个php文件,它是posts.php,但当我试图运行它localhost/codeigniter/index.php/posts时,它显示错误404

.htaccess内部应用程序文件夹

<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
config.php

$config['base_url'] = 'http://localhost/codeigniter/';
$config['index_page'] = 'index.php';
routes.php

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
模型文件夹中的post.php

    class Post extends CI_Model{

    function get_posts($num = 20, $start = 0){

        //$sql = "SELECT * FROM users WHERE active=1 ORDER BY date_added DESC LIMIT 0,20;";
        $this->db->select()->from('posts')->where('active', 1)->order_by('date_added', 'desc')->limit(0, 20);
        $query=$this->db->get();
        return $query->result_array();

    }

}
控制器文件夹中的posts.php

class Posts extends CI_Controller{

    function index(){

        $this->load->model('post');
        $data['posts'] = $this->post->get_posts();
        echo "<pre>";
            print_r($data['posts']);
        echo "</pre>";      

    }

}
class Posts扩展CI_控制器{
函数索引(){
$this->load->model('post');
$data['posts']=$this->post->get_posts();
回声“;
打印($data['posts']);
回声“;
}
}
它应该显示一个空数组,但它显示的是错误404

<?php

class Model_post extends CI_Model {

    public function some_function() {

    }

}

使用codeigniter 3时

所有控制器和模型都应该有类名和文件名的第一个字母,作为大写示例Welcome.php和not Welcome.php

用于您的模型,因为它与控制器同名。我会把模特的名字改成模特

文件名:Model_post.php

<?php

class Post extends CI_Controller {

    public function __construct() {
       parent::__construct();
       $this->load->model('model_post');
    }

   public function index() {
      $this->model_post->some_function();
   }

}
http://localhost/project/index.php/post

http://www.example.com/index.php/post
注意:如果需要,请勿触摸应用程序文件夹中的htaccess htaccess在主目录中添加一个


在v3之前的codeigniter的早期版本中,您不需要首先为控制器担心UCI,但现在为版本3及更高版本担心UCI

在我的例子中,这解决了问题:

转到config/routes.php并在第52行定义默认控制器


如果您需要另一个函数而不是索引,我将从索引函数调用该函数。但这是你的责任。

编辑。这个问题与路线有关。如果没有名为
index
的方法,请从可用方法中选择适当的方法。我试图记住我是如何从历史上解决这些问题的。您是否正在传递任何查询参数?仍然不工作,我编辑了我的问题并添加了我创建的函数。如果您使用的是Codeigniter 3.0,那么post.php控制器应该是post.php。不要触碰应用程序文件夹中的htaccess,只在主目录中添加一个。另外,由于您没有删除配置中的index.php,在主目录中设置htaccess,那么您的url将需要有index.php Hi,不知道你的意思,应该是这样的$this->load->model('Post');?我会将post模型重新命名为model_post.php,因为有时codeigniter会混淆控制器和模型必须在文件名和类名大写字母上有第一个字母,然后您可以使用
$this->load->model('model_post')
$this->model_post->function()
类名和文件名的第一个字母大写不会造成问题,我目前正在IT部门工作,但我想问一下,如果我们在应用程序中编辑.htacess文件,会发生什么情况folder@AnmolRaghuvanshi当您想要删除index.php时,您是否使用codeigniter 2或3?您需要在主目录中使用htaccess以适合您的服务器i am使用CI 3,我在应用程序文件夹中编辑了.htacess文件,因此会出现什么类型的问题…@AnmolRaghuvanshi应用程序文件夹htaccess只会使该目录安全,因此不会破坏它。要删除index.php,您需要在项目的主目录上安装服务器。
<?php

class Post extends CI_Controller {

    public function __construct() {
       parent::__construct();
       $this->load->model('model_post');
    }

   public function index() {
      $this->model_post->some_function();
   }

}
http://localhost/project/index.php/post

http://www.example.com/index.php/post