我已经创建了如下的控制器呼叫帖子
<?php
class Posts extends CI_Controller {
public function index(){
$data['title'] = 'Latest posts';
$this->load->view('templates/header');
$this->load->view('posts/index', $data);
$this->load->view('templates/footer');
}
}
我已经设置了如下路线
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'pages/view';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['(:any)'] = 'pages/view/$1';
$route['posts'] = 'posts/index';
但是如果我转到网址http://localhost/Blog/posts
,则会死于404页面错误
但是,如果我转到http://localhost/Blog/posts/index
,效果很好
为什么我无法在第一个网址中使用它?我做错了什么,请帮我解决这个问题,我是Codeigniter的新手
答案 0 :(得分:1)
类似Blog
的子目录可能是您安装CodeIgniter的子目录。
CI会将所有传入的uri视为/controller/action/parameters
,并尝试实例化相应的Controller
类。如果是这种情况,它将尝试实例化名为Blog
的控制器,但找不到它。
要解决此问题,您必须更新config.php
并设置:
$config['base_url'] = 'http://' . $_SERVER['HTTP_HOST'] . '/Blog/';
答案 1 :(得分:0)
在路由器中将$ route ['posts']更改为 $ route ['/ posts'] 或删除该路由器,因为索引方法将被默认调用。