Intereting Posts
показать контент на основе зарегистрированного пользователя user = role в wordpress с помощью PHP Как изменить URL-адрес после успеха в ajax без перезагрузки страницы Переписать URL Youtube Поиск столбца с использованием ввода и получение строки при совпадении ввода php доступ к атрибутам в json жить изменить любые свойства визуализации сайта Как сохранить декодированное изображение base64 в файловой системе, используя php? Удаление index.php в CodeIgniter просто работает для URL-адреса контроллера по умолчанию Функции PHP system () и exec () не работают с временными файлами Запуск beanstalkd рабочего на удаленном сервере Насколько безопасна функция завитки от обнюхивания? Htaccess: добавить / удалить конечную косую черту из URL Основы PHP – Где хранить пароль MySQL, используемый PHP Laravel 4 Создатель форм Пользовательские поля Макро Получение всех записей, которые являются днем ​​рождения, сегодня в PostgreSQL

Как я могу перенаправить ошибку 404 на пользовательскую страницу 404 с помощью Codeigniter?

Добрые господа, я использую Codeigniter для создания блога. Мне может понадобиться способ перенаправления ошибки 404 на пользовательскую страницу 404. Так же, как страница 404 Abduzeedo.com. Можно ли управлять этим путем использования маршрутов? Или я должен использовать контроллеры, чтобы направить его на другое представление? Огромное спасибо!

есть другой способ, которым я пользуюсь: путем переопределения основного класса Exception Codeigniter. Во-первых, убедитесь, что префикс подкласса вашего конфигурационного файла (system / application / config / config.php) выглядит следующим образом: $config['subclass_prefix'] = 'MY_';

Затем создайте файл с именем MY_Exceptions.php в системе / приложении / библиотеках. Затем переопределите функцию show_404 () здесь следующим образом.

 class MY_Exceptions extends CI_Exceptions{ function MY_Exceptions(){ parent::CI_Exceptions(); } function show_404($page=''){ $this->config =& get_config(); $base_url = $this->config['base_url']; $_SESSION['error_message'] = 'Error message'; header("location: ".$base_url.'error.html'); exit; } } 

Теперь контроллер ошибок будет вашей страницей ошибок, где страница будет перенаправлена ​​на ошибку 404.

Пользовательская страница 404 создается с использованием следующих 3 шагов ,

Шаг 1. Сначала откройте route.php в приложении / config и задайте имя пользовательского контроллера,

 $route['404_override'] = 'my404'; //my404 is class name. 

Шаг 2. Создайте новый контроллер и напишите в нем следующий код. Код очень легко понять. Поэтому я не собираюсь объяснять это здесь,

  <?php class my404 extends CI_Controller { public function __construct() { parent::__construct(); } public function index() { $this->output->set_status_header('404'); $data['content'] = 'error_404'; // View name $this->load->view('index',$data);//loading in my template } } ?> 

Шаг 3. Создайте файл вида с именем « error_404.php » с вашим пользовательским сообщением.

Простое решение.

Создайте свою собственную страницу ошибки или страницы, не найденную в окне просмотра.

Создайте контроллер для страницы с ошибкой. Внутри функции индекса загрузите представление страницы ошибки, которое вы уже создали на предыдущем шаге.

Теперь перейдите к вашему application/config/routes.php

вы должны найти $route['404_override'] = '';

Его значение означает, что он вызывает страницу ошибок по умолчанию.

Теперь разместите свое имя контроллера для страницы с ошибкой.

Это будет работать.

Предположим, что мой контролер для страницы с ошибкой – 'error' . и страница просмотра 'notfound' .

Итак, код для контроллера Error.php будет:

 <?php class Error extends CI_Controller { function index() { $this->load->view('notfound'); } } 

Теперь я заменил $route['404_override'] = ''; to $route['404_override'] = 'error'; в application/config/routes.php .

Вам не нужно создавать какой-либо контроллер или изменять код, а не изменять один файл вида. Просто разместил ваш 404-страничный HTML-файл в файле application/views/errors/html/error_404.php .

Если вы хотите использовать base_url () или любые другие функции CodeIgniter, инициализируйте класс CI_Controller, как приведенный ниже код.

 <?php $ci = new CI_Controller(); $ci =& get_instance(); $ci->load->helper('url'); ?> 

Ну, вы хотите показать свою собственную страницу 404 страницы, если страница не найдена на вашем веб-сайте, вы просто замените свой файл в основном файле, который находится в application/error/error_404.php просто замените свой файл здесь, и вам хорошо идти дальше, где вы можете следуйте другим методам, используя routes и пользовательский контроллер для вашей пользовательской 404 page . Но самым коротким и простым способом является замена основного файла на пользовательский 404error page

Очень очень очень простое решение …
Просто отредактируйте /application/views/error_404.php со своей страницей 404 🙂

Для простого решения перейдите в файл «error_404.php» в каталоге «application / errors /» и поместите этот код в начало файла:

 header("Location:".base_url()); 

Он перенаправит вашу страницу 404 на домашнюю страницу.

Сначала откройте route.php в папке application / config и установите собственное имя контроллера.

  $route['404_override'] = 'custom404'; //custom404 is class name. 

Создайте новый контроллер и напишите в нем следующий код. Код очень легко понять. Поэтому я не собираюсь объяснять это здесь.

 <?php class custom404 extends CI_Controller { public function __construct() { parent::__construct(); } public function index() { $this->output->set_status_header('404'); $data['content'] = 'error_404'; // View name $this->load->view('index',$data);//loading in my template } } ?> 

Создайте файл с именем «error_404.php» с вашим пользовательским сообщением. Это все, что вам нужно сделать, и теперь вы будете иметь свою страницу 404.