У меня есть следующий код в моем rout.php в проекте codeigniter.
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'login/view/$1';
$route['default_controller'] = 'login/view';
Следующий URL-адрес корректно переводит меня на страницу about (которая находится здесь: views / pages / about.php)
http://localhost:1234/ciblog/index.php/pages/view/about
Также http://localhost:1234/ciblog/index.php/news правильно выводит меня на страницу новостей, которая находится здесь: views / news / index.php
Я хотел бы, однако, http://localhost:1234/ciblog/index.php/about, чтобы перевести меня на страницу about, и вместо этого возвращается ошибка 404. Чтобы уточнить, я не хочу вводить «страницы / представление» в URL, чтобы перейти на страницу о. И то же самое для страницы входа. Я не хочу вводить логин / просмотр .... чтобы попасть на страницу login.php.
Я думал, что этот строковый код, организованный так, чтобы его можно было маршрутизировать таким образом, чтобы страницы / представление были пропущены (то есть каталог views / pages), чтобы он шел прямо на страницу about.php, но, очевидно, мне не хватает немного логики.
Контроллер для Pages.php выглядит так:
<?php
class Pages extends CI_Controller{
public function view($page = 'home')
{
if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
Может кто-то указать на то, что я сделал неправильно, а также, в качестве принятого ответа, объяснить, как именно работает маршрутизация в простых терминах. Если я хотел просто создать новую страницу и создать маршрут (URL), который позволил бы мне получить доступ к этой странице с локального хоста / страницы (то есть напрямую), каков наилучший способ сделать это?
Для справки, скриншот структуры каталогов можно увидеть слева.