Codeigniter 3.1.2 ошибка 404

Я пытаюсь перевести какой-нибудь сайт с CI 2.x на CI 3.1.2,
но после того, как я переместил свой старый сайт на новый CI, я получаю ошибку 404, когда я получаю доступ к этой странице.

это моя структура CI:

Applications
- controller
-- back
-- front
--- Home.php

- libraries
-- front.php

- model
-- home_models.php

- views
-- back
-- front
--- elems
---- head.php
---- foot.php
--- pages
---- home.php
--- display
---- pages.php

контроллер
home.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller {
var $data;

public function __construct(){
parent::__construct();
}

public function index(){
$data = array();
$this->front->pages('home',$data);
}
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

Библиотеки front.php

<?php
class Front {

protected $_ci;

function __construct(){
$this->_ci = &get_instance();
}

function pages($page, $data=null){
$data['head'] = $this->_ci->load->view('front/elems/head', $data, TRUE);
$data['content'] = $this->_ci->load->view('front/pages/'.$page, $data, TRUE);
$data['foot'] = $this->_ci->load->view('front/elems/foot', $data, TRUE);
$this->_ci->load->view('front/display/pages', $data);
}
}

?>

по моему маршруту:

$route['default_controller'] = 'front/home';

и в моей автозагрузке:

$autoload['libraries'] = array('front');

В старом CI эта структура — работа, но после того, как я пытаюсь реализовать эту структуру в 3.1.2, я не могу получить доступ к этой странице. Что не так с этим?

-1

Решение

Читать Обновление с 2.2.x до 3.0.x

  1. Обновите ваши файлы CodeIgniter
  2. Обновите имена файлов ваших классов
  3. замещать config/mimes.php
  4. Удалить $autoload[‘core’] от твоего config/autoload.php
  5. Обновите базу данных и файлы маршрутов.
  6. так далее ….
0

Другие решения

я нашел этот путь

Измените ядро ​​моей системы Router.php на

protected function _set_default_controller()
{
if (empty($this->default_controller))
{
show_error('Unable to determine what should be displayed. A default route has not been specified in the routing file.');
}

// Is the method being specified?
if (!sscanf($this->default_controller, '%[^/]/%[^/]/%s', $directory, $class, $method) !== 2)
{
$method = 'index';
}

if ( ! file_exists(APPPATH.'controllers'. DIRECTORY_SEPARATOR . $directory. DIRECTORY_SEPARATOR .ucfirst($class).'.php'))
{
// This will trigger 404 later
return;
}

$this->set_directory($directory);
$this->set_class($class);
$this->set_method($method);

// Assign routed segments, index starting from 1
$this->uri->rsegments = array(
1 => $class,
2 => $method
);

log_message('debug', 'No URI present. Default controller set.');
}

И это работает, но безопасно ли это?

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector