为什么我必须在 URL CodeIgniter 中包含索引?



我创建了一个控制器调用帖子,如下所示

<?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']或删除该路由器,因为索引方法将作为默认值调用。

相关内容

  • 没有找到相关文章

最新更新