- Подробности
 
- 
Категория: CMS (Joomla, Drupal..) 
 
<?php
/**
 * @package        Joomla.Site
 * @copyright    Copyright (C) 2005 — 2014 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */
defined('_JEXEC') or die;
if (!isset($this->error)) {
    $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
    $this->debug = false;
}
//get language and direction
$doc = JFactory::getDocument();
$this->language = $doc->language;
$this->direction = $doc->direction;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<?php
if  ($this->_error->get('code') == '404') {
header("HTTP/1.0  404 Not Found");
header('Location:  index.php');
exit;} ?>
 
 Иные подробности.....
 
В этом уроке мы рассмотрим, как создать свою страницу ошибки 404 в Joomla 2.5, 3.0 и 1.5.
 
Ошибка 404 показывается посетителю в том случае если та страница, которую он запросил, не существует или была удалена с сайта.
 
По умолчанию в Joomla существует страница ошибки 404, но она имеет следующий вид:
 
Как вы можете видеть, она оформлена в виде отдельной страницы. Такой вариант данной страницы плох тем, что она показывается вне содержимого сайта и посетитель, который попал на такую страницу в 99% случаев уйдет из сайта. Да и выглядит данная страница, не очень хорошо выпадая из общего дизайна сайта.
Перед нами же, стоит задача удержать посетителя на сайте как можно дольше. Поэтому нам необходимо оформить данную страницу в виде стандартной страницы Joomla, которая будет выглядеть и содержать все элементы, как и на самом сайте.
Для этого зайдите в административную панель Joomla, создайте новый материал и дайте ему название, например «Ошибка 404 — страница не найдена». В самом материале напишите, какое либо сообщение и при желании дайте ссылки на определенные разделы сайта, куда бы мог перейти посетитель, попавший на эту страницу или большую поисковую форму.
Например, для данного сайта я указал следующую информацию на данной странице:
 
 
Для Joomla 2.5 и 3.0 в настройках материала из выпадающего списка "Категория" выберите "Uncategorised".
Для Joomla 1.5 в настройках материала, из выпадающих списков «Раздел» и «Категория» выберите «Не указанно»;
Т. е. создайте так называемый статичный материал не принадлежащий ни одной категории. После этого сохраните данный материал и запомните его идентификатор (id). Его вы можете найти на странице создания материала: «ID Материала:» XX.
Теперь в начале рассмотрим создание страницы 404 в Joomla 2.5 и 3.0, а затем как это сделать в устаревшей версии Joomla 1.5.
Создание страницы ошибки 404 в Joomla 2.5 и 3.0.
Для начала перейдите в папку: ваш сайт/ templates/system/, скопируйте имеющийся там файл error.php в папку: ваш сайт/ templates/ваша-тема. Это необходимо сделать потому, что данный файл мы будем редактировать и чтобы при последующем обновлении системы все наши изменения не пропали, мы скопировали его в папку с нашей темой.
Откройте данный файл при помощи какого либо редактора кода. Найдите в нем следующую строку:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> 
 
 
 
 
Удалите все содержимое данного файла ниже данной строки и вставьте вместо его следующий код:
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: index.php?option=com_content&view=article&id=XX');
exit;} ?>
 
 
 
 
После этого в строчке:  index.php?option=com_content&view=article&id=XX, замените XX на id того материала, который мы создавали для использования в качестве страницы 404. Сохраните файл. После этого все будет готово.
Можно еще создать короткий адрес для вашей страницы 404. Для этого создайте, (если у вас еще такового нет), скрытое меню т. е. меню которое вы не будете выводить на сайте при помощи модуля. В данном меню создайте пункт меню ведущий на материал используемый в качестве ошибки 404. 
Для этого:
- в поле "Тип пункта меню" выберите "Материал";
 
- в поле "Выберите материал" укажите материал используемый для страницы 404;
 
- в поле "Заголовок меню" можете указать что ни будь типа: "Ошибка 404 страница не найдена";
 
- в поле "Алиас" error-404.
 
И нажмите  "Сохранить".
 
Теперь после переадресации на страницу 404 ее адрес будет вида: http://ваш-сайт.ru/error-404.html. Можете попробовать ввести адрес любой несуществующей страницы и проверить результат.
Еще можно заблокировать данную страницу в файле robots.txt, чтобы она не индексировалась поисковыми системами. Для этого в robot.txt добавьте следующее: Disallow: /error-404.html .
Создание страницы ошибки 404 в Joomla 1.5.
Пройдите в папку: ваш сайт/ templates/system/ и откройте, при помощи какого либо HTML редактора файл: error.php.
Найдите в этом фале строку:
Удалите все что находится в этом файле ниже данной строки и вставьте следующее:
<?php defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'index.php?option=com_content&view=article&id=43');
?>
 
 
 
 
Только вместо значения «43» укажите идентификатор того материала который вы создали выше, для отображения в качестве страницы ошибки 404.
После этого сохраните данный файл и попробуйте в адресной строке браузера набрать адрес, какой либо страницы вашего сайта, которая не существует, например: http://ваш-сайт.ru/bla-bla.html. В результате если вы все сделали правильно, то перед вами появится собственная страница ошибок 404, которая выводится в рамках самого сайта.
Если вам необходим качественный, надежный хостинг для сайта, то можете воспользоваться обзором хостингов размещенном на нашем сайте, здесь вы сможете подобрать как качественный 
виртуальный хостинг так и 
хостинг VPS.
 
Материал подготовлен проектом: WebMasterMix.ru