我创建了一个控制器调用帖子,如下所示
<?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';
但是如果我转到 urlhttp://localhost/Blog/posts
它会因 404 页面错误而死亡
但是如果我去http://localhost/Blog/posts/index
它工作正常
为什么我不能让它在第一个 URL 中工作? 我做错了什么,请帮帮我解决这个问题 我是编码点火器的新手
看起来Blog
可能是您安装CodeIgniter的子目录。 CI 会将任何传入的 uri 视为/controller/action/parameters
,并尝试实例化相应的Controller
类。如果是这种情况,它正在尝试实例名为Blog
的控制器,但找不到它。
要解决此问题,您必须更新config.php
并设置:
$config['base_url'] = 'http://' . $_SERVER['HTTP_HOST'] . '/Blog/';
在路由器中将$route['posts']更改为$route['/posts']或删除该路由器,因为索引方法将作为默认值调用。