Почему я должен включить индекс в URL CodeIgniter? - PullRequest
0 голосов
/ 10 октября 2018

Я создал сообщения о вызове контроллера, как показано ниже

<?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';

, но если я перейду на URL http://localhost/Blog/posts, он умрет с 404ошибка страницы

Но если я перехожу к http://localhost/Blog/posts/index, он работает нормально

, почему я не могу заставить его работать в первом URL?Что я сделал не так, пожалуйста, помогите мне, я новичок в codeigniter

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

измените $ route ['posts'] на $ route ['/ posts'] в маршрутизаторе или удалите этот маршрутизатор, поскольку метод индекса будет вызываться по умолчанию.

0 голосов
/ 10 октября 2018

Похоже, Blog может быть подкаталогом, в котором установлена ​​ваша программа CodeIgniter.CI будет рассматривать любой входящий URI как /controller/action/parameters и попытаться создать экземпляр соответствующего класса Controller.Если это так, он пытается создать экземпляр контроллера с именем Blog и не может его найти.

Чтобы исправить это, вы должны обновить config.php и установить:

$config['base_url'] = 'http://' . $_SERVER['HTTP_HOST'] . '/Blog/';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...