Error php для joomla

It has been suggested that this article or section be split into specific version Namespaces. (Discuss). If version split is not obvious, please allow split request to remain for 1 week pending discussions. Proposed since 3 years ago.

It has been suggested that this article or section be split into specific version Namespaces. (Discuss). If version split is not obvious, please allow split request to remain for 1 week pending discussions. Proposed since 3 years ago.

Joomla! использует файл templates/system/error.php для обработки нескольких ошибок статуса HTTP, включая ошибки «403 Forbidden», «404 Not Found» и «500 Internal Server». При желании вы можете стилизовать результаты ошибок.

Важно понимать, что error.php — это независимый файл от Joomla! CMS, но зависит от Joomla! Платформа. Плагины не запускаются в этом файле. Вы не можете включать модули или использовать операторы <jdoc: include>.

Переопределение результатов системных ошибок

Чтобы переопределить результаты системных ошибок, скопируйте файл templates/system/error.php в каталогtemplates/<template-name>.

Если он найдет, Joomla! будет использовать файл error.php из текущего шаблона вместо системного файла.

При желании вы можете отформатировать страницу в соответствии с вашим шаблоном.

Переопределение стиля системы

Если вы хотите изменить стиль, скопируйте файл templates/system/css/error.css в каталог templates/<template-name>/css.
Затем обновите файл templates/<template-name>/error.php, чтобы он ссылался на новое местоположение таблицы стилей, соответственно изменив эту строку:

<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/error.css" type="text/css" />

Затем просто измените error.css, как вам нужно, для ваших требований к стилю.

Настройка сообщений об ошибках

Вы можете добавить условную логику, чтобы варьировать возвращаемое сообщение в зависимости от конкретного кода ошибки.

Вот пример того, как перехватить ошибку 404 и предоставить пользовательское сообщение.

<?php  if ($this->error->getCode() == '404') { ?>
	<div id="errorboxheader">Page not found</div>
		<div id="errorboxbody"><p>Sorry! That page cannot be found.</p>
		</div>
	</div>
<?php } ?>

Код статуса HTTP

Когда делается запрос на страницу на вашем сайте, сервер возвращает HTTP-код состояния в ответ на запрос. Joomla! возвращает ‘200 — сервер успешно вернул страницу’ для страниц с ошибками. Это проблематично для тех, кто работает со Службами Google для веб-мастеров и пытается решить проблему с картой сайта.

Если вы хотите чтобы Joomla! вернула код состояния ошибки, вы можете сделать это, добавив логику перед строкой DOCTYPE, следующим образом:

<?php 
if ($this->error->getCode() == '404') {
	header("HTTP/1.0 404 Not Found");
} ?>

Дополнительная информация о коде состояния HTTP

  • Создать пользовательскую страницу ошибки 404
  • HTTP/1.1 Status Code Definitions
  • Список кодов состояния HTTP

Использование заголовка и нижнего колонтитула темы на странице стандартных ошибок

Joomla 1.5
Если вы хотите видеть страницу ошибки в дизайне темы и вам не нравится перенаправление на URL страницы ошибки или дублирование HTML в шаблоне страницы ошибки, вот способ применить шаблон темы к странице ошибки.

Сначала поместите следующий код в templates/<template-name>/error.php:

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

include dirname(__FILE__) . "/index.php";
?>

Затем внесите следующие изменения в templates/<template-name>/index.php:

1. Найдите следующий код в index.php

<jdoc:include type="head" />

и замените его следующим

<?php if (!$this->error->getCode()) : ?>
<jdoc:include type="head" />
<?php else : ?> 
<title><?php echo $this->error->getCode() ?> - <?php echo $this->title; ?></title>
<?php endif; ?>

2. Найдите следующий код в index.php

<jdoc:include type="component" />

и замените его следующим

<?php if ($this->error->getCode()) : /* check if we are on error page, if yes - display error message */ ?>
  <p><strong><?php echo $this->error->getCode() ?> - <?php echo $this->error->message ?></strong></p>
  <p><strong><?php echo JText::_('JERROR_LAYOUT_NOT_ABLE_TO_VISIT'); ?></strong></p>
  <ol>
    <li><?php echo JText::_('JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_LISTING'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_MIS_TYPED_ADDRESS'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS_PAGE'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_REQUESTED_RESOURCE_WAS_NOT_FOUND'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST'); ?></li>
  </ol>
  <p><strong><?php echo JText::_('JERROR_LAYOUT_PLEASE_TRY_ONE_OF_THE_FOLLOWING_PAGES'); ?></strong></p>

  <ul>
  <li><a href="<?php echo $this->baseurl; ?>/index.php" title="<?php echo JText::_('JERROR_LAYOUT_GO_TO_THE_HOME_PAGE'); ?>"><?php echo JText::_('JERROR_LAYOUT_HOME_PAGE'); ?></a></li>
  </ul>

  <p><?php echo JText::_('JERROR_LAYOUT_PLEASE_CONTACT_THE_SYSTEM_ADMINISTRATOR'); ?>.</p>
<?php else : ?>
  <jdoc:include type="component" />
<?php endif; ?>

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

Примечание: Модуль, включенный в шаблон, не будет работать на странице ошибок, созданной этим методом (но будет работать на других страницах).

Использование модулей на страницах ошибок

Модули не могут быть включены в страницы ошибок так же, как index.php шаблона, потому что вы не можете использовать операторы <jdoc: include>. Существует альтернативный способ использования JModuleHelper.

Чтобы включить один модуль по заголовку, вы можете использовать:

if (JModuleHelper::getModule('menu')) { 
    echo $doc->getBuffer('module', 'menu');
}

Чтобы включить несколько модулей по позиции, вы можете использовать:

$modules = JModuleHelper::getModules( 'footer_3' );
$attribs['style'] = 'xhtml';
foreach ($modules AS $module ) {
    echo JModuleHelper::renderModule( $module, $attribs );
}

It has been suggested that this article or section be split into specific version Namespaces. (Discuss). If version split is not obvious, please allow split request to remain for 1 week pending discussions. Proposed since 6 years ago.

Joomla! uses the templates/system/error.php file to handle several HTTP Status errors, including «403 Forbidden», «404 Not Found», and «500 Internal Server» errors. You can style the error results, if desired.

It is important to understand that error.php is an independent file from the Joomla! CMS but dependent on the Joomla! Platform. Plugins do not run on the file. You cannot include modules or use <jdoc:include> statements.

Overriding the System Error Results[edit]

To override the system error results, copy the templates/system/error.php file into your templates/<template-name> directory.

If it finds one, Joomla! will use the error.php file from the current template, in place of the system file.

You can format the page, as desired, to match your template.

Overriding the System Styling[edit]

If you want to change the styling, copy the templates/system/css/error.css file into your templates/<template-name>/css directory.
Next, update your templates/<template-name>/error.php file to reference the new location of the stylesheet by changing this line, accordingly:

<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/error.css" type="text/css" />

Then, simply change the error.css, as desired, for your styling requirements.

Customizing Error Messages[edit]

You can add conditional logic to vary the message returned, dependent upon the specific error code.

Here is an example of how to trap a 404 error and provide a custom message.

<?php  if ($this->error->getCode() == '404') { ?>
	<div id="errorboxheader">Page not found</div>
		<div id="errorboxbody"><p>Sorry! That page cannot be found.</p>
		</div>
	</div>
<?php } ?>

HTTP Status Code[edit]

When a request is made for a page on your site, the server returns an HTTP status code in response to the request. Joomla! returns a ‘200 — the server successfully returned the page’ for error pages. This is problematic for those working with Google Webmaster Services and trying to get a sitemap resolved.

If you want Joomla! to return a status code for the error, you can do so by adding logic before the DOCTYPE line, as follows:

<?php 
if ($this->error->getCode() == '404') {
	header("HTTP/1.0 404 Not Found");
} ?>

More HTTP Status Code Information[edit]

  • Create a Custom 404 Error Page
  • HTTP/1.1 Status Code Definitions
  • List of HTTP status codes

Using Theme Header and Footer on Standard Error Page[edit]

Joomla 1.5
If you want to see the error page in theme design and don’t like redirecting to error page URL or duplicating HTML in the error page template, here is a way to apply your theme template to the error page.

First, put the following code in templates/<template-name>/error.php:

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

include dirname(__FILE__) . "/index.php";
?>

Then make the following edits to templates/<template-name>/index.php:

1. Find the following code in index.php

<jdoc:include type="head" />

and replace it with the following

<?php if (!$this->error->getCode()) : ?>
<jdoc:include type="head" />
<?php else : ?> 
<title><?php echo $this->error->getCode() ?> - <?php echo $this->title; ?></title>
<?php endif; ?>

2. Find the following code in index.php

<jdoc:include type="component" />

and replace it with the following

<?php if ($this->error->getCode()) : /* check if we are on error page, if yes - display error message */ ?>
  <p><strong><?php echo $this->error->getCode() ?> - <?php echo $this->error->message ?></strong></p>
  <p><strong><?php echo JText::_('JERROR_LAYOUT_NOT_ABLE_TO_VISIT'); ?></strong></p>
  <ol>
    <li><?php echo JText::_('JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_LISTING'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_MIS_TYPED_ADDRESS'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS_PAGE'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_REQUESTED_RESOURCE_WAS_NOT_FOUND'); ?></li>
    <li><?php echo JText::_('JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST'); ?></li>
  </ol>
  <p><strong><?php echo JText::_('JERROR_LAYOUT_PLEASE_TRY_ONE_OF_THE_FOLLOWING_PAGES'); ?></strong></p>

  <ul>
  <li><a href="<?php echo $this->baseurl; ?>/index.php" title="<?php echo JText::_('JERROR_LAYOUT_GO_TO_THE_HOME_PAGE'); ?>"><?php echo JText::_('JERROR_LAYOUT_HOME_PAGE'); ?></a></li>
  </ul>

  <p><?php echo JText::_('JERROR_LAYOUT_PLEASE_CONTACT_THE_SYSTEM_ADMINISTRATOR'); ?>.</p>
<?php else : ?>
  <jdoc:include type="component" />
<?php endif; ?>

Now your theme template is applied to error pages too.

Note: Module includes in template will not work on error page created by this method (but will work on other pages).

Using modules in error pages[edit]

Modules cannot be included in error pages in the same way as the template’s index.php because you cannot use <jdoc:include> statements. There is an alternative way using JModuleHelper.

To include a single module by title, you can use:

if (JModuleHelper::getModule('menu')) { 
    echo $doc->getBuffer('module', 'menu');
}

To include multiple modules by position, you can use:

$modules = JModuleHelper::getModules( 'footer_3' );
$attribs['style'] = 'xhtml';
foreach ($modules AS $module ) {
    echo JModuleHelper::renderModule( $module, $attribs );
}

Вступление

Страница ошибок, которую сервера HTTP обозначают, как 404 Not found, означает, что сервер работает исправно, однако по сделанному запросу ничего не найдено. Для сайта Joomla, это значит, что страницы, которую пользователь пытается открыть, не существует. Для CMS Joomla причин появления страниц 404 много. Основные причины редактирование статей, изменение SEO настроек сайта, перенос статей из одной категории в другую, удаление модулей и т.п.

На всех системных шаблонах Joomla, страница 404 уже создана. В принципе вся необходимая информация для пользователя на этой странице есть, но удручает ее внешний вид. Создадим свою уникальную страницу 404 на сайте Joomla.

Примечание: С течением времени, должен сделать добавление. Удручать должен не внешний вид старницы 404 Joomla сайта, а статус страницы ошибок, который возвращает HTTP сервис при её запросе. Правильно, если сервер отдает на ошибочном URL, код статуса HTTP — 404 Not Found, а не 303,302, и т.д. Обязательно! До и после создания страницы 404, проверьте, что отдает сервер на несуществующем URL. Удобно это сделать в Яндекс.Вебмастер на вкладке Инструменты. (дополение 20-03-2017).      

404 Notfound Joomla 08

4 простых шага создания страницы 404 Not found на Joomla

Алгоритм работ таков:

  • Создать и оформить страницу 404;
  • Создать пункт меню 404, опубликовать его, но скрыть от показа в меню;
  • Поменять и отредактировать файл error.php рабочего шаблона;
  • Проверить статус кода созданной страницы ошибок;
  • Всё. 

Создаем страницу 404 в менеджере материалов

На первом шаге, создадим страницу 404 в менеджере материалов сайта в рубрике «Uncategorized». Название может быть произвольное, но для удобства, назовем страницу «404». Оформление страницы 404 делаем «как душе угодно».

  • Чтобы выделить страницу 404 из других страниц сайта, уберем с нее все информационные «обвесы»: показ категорий, автором, показов, дат публикации и т.д. Делаем это на странице добавления материалов, на вкладке: Отображение.

404 Notfound Joomla 10

  • Убираем со страницы все модули. Это делаем на странице Расширения→Менеджер модулей, на вкладке «Привязка модулей».

404 Notfound Joomla 12

404 страницу незачем индексировать у поисковиков, поэтому на странице добавления материалов, закрываем 404 страницу тегами Noindex, Nofollow. Это делаем на вкладке: Создать материал — Публикация, пункт: Мета-тег Robots.

404 Notfound Joomla 14

Сохраняем и публикуем страницу 404.

Создаем меню для страницы 404

Чтобы вывести страницу ошибок на сайт, нужно создать пункт меню с материалом «404». Для этого в любом меню сайта создаем пункт меню с понятным названием, например «404». Тип пункта меню выбираем, как «Материал», а материал выбираем созданную страницу «404».

Сохраняемся и копируем в поле «Ссылка», ссылку созданного пункта меню. Она нужна для дальнейшей прописки 404 страницы.

404 Notfound Joomla 01

Ищем или создаем файл error.php

Системный файл ошибок Joomla лежит в каталоге: /templates/system. Копируем этот файл ошибок error.php, то копируем его и переносим (заменяем) из /templates/system в /templates/ваша-тема.

404 Notfound Joomla 02

Проверяем «прописку» файла error.php в файле templateDetailis.xml. Если прописки нет, прописываем.

straniza 404 joomla 5

Редактируем файл error.php

В рабочем шаблоне ищем файл error.php или используем перенесенный файл error.php. Открываем это файл в текстовом редакторе и поиском ищем слово «404».

После строки:

defined('_JEXEC') or die;

добавляем, удаляя старое:

if (($this->error->getCode()) == '404')
{
header('Location: index.php?option=com_content&view=article&id=1');
exit;
}

, где после Location, вписываем скопированную ссылку пункта меню: «404».

было:

404 Notfound Joomla 03

стало:

2017 03 20 13 20 35

Сохраняемся и переносим отредактированный файл error.php в каталог рабочего шаблона, по FTPв режиме перезаписи.

Смотрим результат

Идем в панель сайта и в общих настройках «Система» чистим кэш. Теперь можно проверить отражение 404 страницы на сайте. Для этого в браузере после домена сайта, через слэш пишем любые буквы, жмем поиск и видим созданную 404 страницу. Если не видим свою страницу 404, чистим кэш браузера (ctrl+F5).

404 Notfound Joomla 13

SEO Проверка страницы 404 на Joomla

Важно, чтобы на запрос созданной страницы ошибок 404, которая имеет бесконечное количество URL, сервер отдавал ответ 200 OK, а не 404 NotFound.

Проверить ответ сервера можно на своей странице Яндекс.Вебмастер, на вкладке Инструменты>>Проверка ответа сервера. Пишете свой домен, через слэш любой набор букв, жмете «Проверить». Ответ сервера должен быть 200 OK, Содержание страницы должно быть.        

©Joomla3-x.ru

Другие статьи разделов: CMS Joomla и оптимизация

Содержание

  1. Создание произвольной страницы ошибки 404
  2. Материал из Joomla! Documentation
  3. Содержание
  4. Четыре шага по созданию произвольной веб-страницы ошибки 404
  5. Пользовательские страницы ошибок
  6. Материал из Joomla! Documentation
  7. Содержание
  8. Переопределение результатов системных ошибок
  9. Переопределение стиля системы
  10. Настройка сообщений об ошибках
  11. Код статуса HTTP
  12. Дополнительная информация о коде состояния HTTP
  13. Использование заголовка и нижнего колонтитула темы на странице стандартных ошибок
  14. Использование модулей на страницах ошибок
  15. Custom error pages
  16. Материал из Joomla! Documentation
  17. Содержание
  18. Overriding the System Error Results [ править ]
  19. Overriding the System Styling [ править ]
  20. Customizing Error Messages [ править ]
  21. HTTP Status Code [ править ]
  22. More HTTP Status Code Information [ править ]
  23. Using Theme Header and Footer on Standard Error Page [ править ]
  24. Using modules in error pages [ править ]
  25. Creating a Custom 404 Error Page
  26. Материал из Joomla! Documentation
  27. Содержание
  28. Four Steps to Creating a Custom 404 Error Page
  29. Страница ошибки 404 в Joomla
  30. Что такое ошибка 404?
  31. Что такое страница ошибки 404?
  32. Страница ошибки 404 в шаблонах Joomla
  33. Создание страницы 404 в интерфейсе шаблона
  34. Видеоинструкция

Создание произвольной страницы ошибки 404

Материал из Joomla! Documentation

This page has been archived. This page contains information for an unsupported Joomla! version or is no longer relevant. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Этот урок покажет Вам как создать какую-либо произвольную страницу ошибки 404 для работающего на Joomla веб-сайта. Please note, that the approach below sends 200 HTTP code to browser instead of expected 404 (since it finally renders a regular joomla article). The approach tells search engine not to index the page by disallowing it in robots.txt. This doesn’t seem to be the best solution.

Содержание

Четыре шага по созданию произвольной веб-страницы ошибки 404

  1. Создайте материал под названием ‘404’ в категории ‘Uncategorized’ Создайте в категории ‘Uncategorized’ материал, который будет служить как Ваша веб-страница ошибки 404. Включите [в нее] немного текста, например Извините, но мы не смогли найти запрошенную Вами веб-страницу . и, если необходимо, любые полезные навигационные ссылки на какие-либо страницы Вашего веб-сайта. Например, Вы можете захотеть добавить ссылку на главную веб-страницу своего веб-сайта.
  2. Создайте ссылку на этот новый материал с названием ‘404’ Создайте какой-либо пункт меню, который ведет на этот новый материал ‘404’ и щелкните по кнопке ‘Применить’. Затем скопируйте эту URL-ссылку (index.php?optio. ), настройте параметр публикации этого пункта меню на ‘Неопубликовано’, нажмите на кнопку ‘Сохранить’ и закройте эту страницу пункта меню. Вам стоит временно скопировать эту URL-ссылку на Ваш Notepad или куда-либо еще, откуда Вы сможете ее скопировать.
  3. Скопируйте страницу error.php в директорию Вашего шаблона В директории своей установки Joomla скопируйте находящийся в под-директории /templates/system файл error.php в под-директорию своего шаблона. Например, если бы я использовал шаблон под названием ‘Cleancloud’, то я бы скопировал файл error.php в под-директорию /templates/cleancloud.
  4. Внесите изменения в файл error.php для перенаправления на свой материал под названием ‘404’ Измените содержание файла error.php следующим образом, добавив ниже расположенный код сразу под строчкой ‘restricted access’:

если Вы используете Joomla в версиях 1.6, 1.7, 2.5 или 3.x, то используйте, пожалуйста, следующий код:

Замените адресные данные [веб-страницы перенаправления] на URL-ссылку, скопированную Вами при создании меню.

Если Вы используете Joomla в версии 1.5 или старее ее, то используйте, пожалуйста, вместо того кода следующий:

Источник

Пользовательские страницы ошибок

Материал из Joomla! Documentation

It has been suggested that this article or section be split into specific version Namespaces. (Discuss). If version split is not obvious, please allow split request to remain for 1 week pending discussions. Proposed since 3 years ago.

Joomla! использует файл templates/system/error.php для обработки нескольких ошибок статуса HTTP, включая ошибки «403 Forbidden», «404 Not Found» и «500 Internal Server». При желании вы можете стилизовать результаты ошибок.

Важно понимать, что error.php — это независимый файл от Joomla! CMS, но зависит от Joomla! Платформа. Плагины не запускаются в этом файле. Вы не можете включать модули или использовать операторы .

Содержание

Переопределение результатов системных ошибок

Чтобы переопределить результаты системных ошибок, скопируйте файл templates/system/error.php в каталогtemplates/ .

Если он найдет, Joomla! будет использовать файл error.php из текущего шаблона вместо системного файла.

При желании вы можете отформатировать страницу в соответствии с вашим шаблоном.

Переопределение стиля системы

Если вы хотите изменить стиль, скопируйте файл templates/system/css/error.css в каталог templates/ /css. Затем обновите файл templates/ /error.php, чтобы он ссылался на новое местоположение таблицы стилей, соответственно изменив эту строку:

Затем просто измените error.css, как вам нужно, для ваших требований к стилю.

Настройка сообщений об ошибках

Вы можете добавить условную логику, чтобы варьировать возвращаемое сообщение в зависимости от конкретного кода ошибки.

Вот пример того, как перехватить ошибку 404 и предоставить пользовательское сообщение.

Код статуса HTTP

Когда делается запрос на страницу на вашем сайте, сервер возвращает HTTP-код состояния в ответ на запрос. Joomla! возвращает ‘200 — сервер успешно вернул страницу’ для страниц с ошибками. Это проблематично для тех, кто работает со Службами Google для веб-мастеров и пытается решить проблему с картой сайта.

Если вы хотите чтобы Joomla! вернула код состояния ошибки, вы можете сделать это, добавив логику перед строкой DOCTYPE, следующим образом:

Дополнительная информация о коде состояния HTTP

Использование заголовка и нижнего колонтитула темы на странице стандартных ошибок

Если вы хотите видеть страницу ошибки в дизайне темы и вам не нравится перенаправление на URL страницы ошибки или дублирование HTML в шаблоне страницы ошибки, вот способ применить шаблон темы к странице ошибки.

Сначала поместите следующий код в templates/ /error.php:

Затем внесите следующие изменения в templates/ /index.php:

1. Найдите следующий код в index.php

и замените его следующим

2. Найдите следующий код в index.php

и замените его следующим

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

Примечание: Модуль, включенный в шаблон, не будет работать на странице ошибок, созданной этим методом (но будет работать на других страницах).

Использование модулей на страницах ошибок

Модули не могут быть включены в страницы ошибок так же, как index.php шаблона, потому что вы не можете использовать операторы . Существует альтернативный способ использования JModuleHelper.

Чтобы включить один модуль по заголовку, вы можете использовать:

Чтобы включить несколько модулей по позиции, вы можете использовать:

Источник

Custom error pages

Материал из Joomla! Documentation

It has been suggested that this article or section be split into specific version Namespaces. (Discuss). If version split is not obvious, please allow split request to remain for 1 week pending discussions. Proposed since 6 years ago.

Joomla! uses the templates/system/error.php file to handle several HTTP Status errors, including «403 Forbidden», «404 Not Found», and «500 Internal Server» errors. You can style the error results, if desired.

It is important to understand that error.php is an independent file from the Joomla! CMS but dependent on the Joomla! Platform. Plugins do not run on the file. You cannot include modules or use statements.

Содержание

Overriding the System Error Results [ править ]

To override the system error results, copy the templates/system/error.php file into your templates/ directory.

If it finds one, Joomla! will use the error.php file from the current template, in place of the system file.

You can format the page, as desired, to match your template.

Overriding the System Styling [ править ]

If you want to change the styling, copy the templates/system/css/error.css file into your templates/ /css directory. Next, update your templates/ /error.php file to reference the new location of the stylesheet by changing this line, accordingly:

Then, simply change the error.css, as desired, for your styling requirements.

Customizing Error Messages [ править ]

You can add conditional logic to vary the message returned, dependent upon the specific error code.

Here is an example of how to trap a 404 error and provide a custom message.

HTTP Status Code [ править ]

When a request is made for a page on your site, the server returns an HTTP status code in response to the request. Joomla! returns a ‘200 — the server successfully returned the page’ for error pages. This is problematic for those working with Google Webmaster Services and trying to get a sitemap resolved.

If you want Joomla! to return a status code for the error, you can do so by adding logic before the DOCTYPE line, as follows:

More HTTP Status Code Information [ править ]

Using Theme Header and Footer on Standard Error Page [ править ]

If you want to see the error page in theme design and don’t like redirecting to error page URL or duplicating HTML in the error page template, here is a way to apply your theme template to the error page.

First, put the following code in templates/ /error.php:

Then make the following edits to templates/ /index.php:

1. Find the following code in index.php

and replace it with the following

2. Find the following code in index.php

and replace it with the following

Now your theme template is applied to error pages too.

Note: Module includes in template will not work on error page created by this method (but will work on other pages).

Using modules in error pages [ править ]

Modules cannot be included in error pages in the same way as the template’s index.php because you cannot use statements. There is an alternative way using JModuleHelper.

To include a single module by title, you can use:

To include multiple modules by position, you can use:

Источник

Creating a Custom 404 Error Page

Материал из Joomla! Documentation

This page has been archived. This page contains information for an unsupported Joomla! version or is no longer relevant. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

This tutorial will show you how to create a custom 404 error page for use in your Joomla web-site. Please note, that the approach below sends 200 HTTP code to browser instead of expected 404 (since it finally renders a regular joomla article). The approach tells search engine not to index the page by disallowing it in robots.txt. This doesn’t seem to be the best solution.

Содержание

Four Steps to Creating a Custom 404 Error Page

  1. Create an Uncategorized ‘404’ Article Create an ‘uncategorized’ article in Joomla! to serve as your 404 Page. Include some text such as Sorry, we could not find the page you were looking for. and if necessary, also any useful navigational links. For example, you may wish to add a link back to your site’s home page.
  2. Create and copy a link to that new 404 Article. Create a menu item which links to the new 404 Article and ‘apply’ your changes. Then copy the URL information (index.php?optio. ), set the menu item as ‘unpublished’ and close out of the menu editing page. You may want to paste the copied URL into Notepad or somewhere accessible for the time-being.
  3. Copy error.php to your Template’s Directory In your Joomla! installation copy the file error.php from the templates/system directory, to your Template directory. For example, if I was using a template named ‘Cleancloud’ I would copy the error.php file to the templates/cleancloud directory.
  4. Modify error.php to Redirect 404 Errors to your 404 Article Edit the error.php file as follows, adding the code below immediately under the ‘restricted access’ line:

If you are using Joomla 1.6, 1.7, 2.5, or 3.x please use this detection code:

Replace the location information (index.php?option..) with the URL from the menu item you created.

If you are using Joomla 1.5 and below please use this detection code instead:

Источник

Страница ошибки 404 в Joomla

Узнайте, как правильно создать и настроить собственную страницу ошибки 404 для сайта на 3 и Joomla 4, отображаемую в интерфейсе шаблона.

Что такое ошибка 404?

Веб-сервер должен отправлять ответ 404 Not Found в случае, если соответствующего запрашиваемому URL-адресу ресурса не существует.

Что такое страница ошибки 404?

При этом сервер должен отдавать именно ответ 404 Not Found, а не перенаправлять пользователей на страницу со статусом 200 OK. Это очень важно, т. к. роботы поисковых систем принимают во внимание ответы сервера, и считают существующими все страницы со статусом 200 OK, который не запрещает индексировать такие страницы в поисковой системе, а это может способствовать появлению дублей страниц в поисковой выдаче и затруднит продвижение сайта в целом.

Страница ошибки 404 в шаблонах Joomla

Профессиональные всегда имеют в своём арсенале настроенную рабочую страницу 404-й ошибки, отображаемую при вводе несуществующих адресов.

Как правило, данных страниц сильно отличается от общего интерфейса шаблона, что может негативно сказаться на поведенческих факторах: некоторые пользователи могут «испугаться» и покинуть сайт. Во избежание таких потерь посетителей сайта на ровном месте мы рекомендуем создавать настраиваемую страницу для 404-ошибки, отображаемую в интерфейсе шаблона.

Создание страницы 404 в интерфейсе шаблона

Разберем по пунктам, как правильно создать и настроить собственную страницу ошибки 404 в теле стандартного шаблона Protostar для Joomla 3 с отображением контента в области компонента.

  1. Создать и опубликовать материал, который будет отображаться при запросе несуществующей страницы. Примеры опций:
    • Заголовок: «Страница не найдена».
    • : «error-404».
    • Cодержание: «Указанной страницы не существует. Вероятно, она была удалена или перенесена на другой адрес.»
    • Категория: «Uncategorised».
  2. Создать и опубликовать скрытый пункт меню данного материала с алиасом error-404:
    • Во вкладке Параметры материала необходимо отключить показ всей лишней информации (Автор, Хиты, Дата публикации и т. д.).
    • Во вкладке Параметры ссылки необходимо установить опцию Показать в меню на Нет, чтобы скрыть пункт меню.
    • Во вкладке Параметры страницы можно прописать тег , который будет отображаться вместо названия материала. Например: «Ошибка 404 — страница не найдена».
    • Во вкладке Метаданные выбрать значение метатега Robots noindex, nofollow.
  3. В папке шаблона (/templates/шаблон) создать или заменить существующий файл error.php, который должен содержать только следующий код:
  4. Проверяем функционирование страницы. По запросу несуществующего документа должен отображаться созданный материал.
  5. Проверяем ответ сервера для несуществующей страницы. Для этого можно воспользоваться панелью разработчика в браузере или сторонним веб-сервисом.
  6. Чтобы сделать страницу ошибки 404 более наглядной, рекомендуем добавить в её контент соответствующее изображение, которое без труда можно найти в поисковой выдаче картинок, а также отключить на ней ненужные модули.

Видеоинструкция

Упоминаемые термины:

Одна из самых популярных бесплатных CMS в мире. По результатам голосований на CMS Critic с 2014 по 2021, Joomla ежегодно получает титул Best Open Source CMS (лучшая CMS с открытым исходным кодом).

Текст, применяемый в Joomla для создания «человекопонятных» URL-адресов (ЧПУ) для определённых элементов контента (пунктов меню, материалов, категорий и т. д.).

Тип расширений для Joomla, отвечающих за расположение модулей и стилевое оформление лицевых страниц сайта или админки. От шаблона зависит то, как сайт будет выглядеть в глазах пользователей.

Веб-страницы, доступные для просмотра посетителям сайта. За внешний вид лицевых страниц в Joomla отвечают шаблоны.

Источник

Узнайте, как правильно создать и настроить собственную страницу ошибки 404 для сайта на Joomla 3 и Joomla 4, отображаемую в интерфейсе шаблона.

Важно знать!

Ошибка 404 (Error 404) — это ответ сервера, отправляемый при запросах на несуществующие ресурсы.

Веб-сервер должен отправлять ответ 404 Not Found в случае, если соответствующего запрашиваемому URL-адресу ресурса не существует.

Что такое страница ошибки 404?

Важно знать!

Страница ошибки 404 — это веб-страница, отображаемая при прямом запросе на несуществующий документ.

При этом сервер должен отдавать именно ответ 404 Not Found, а не перенаправлять пользователей на страницу со статусом 200 OK. Это очень важно, т. к. роботы поисковых систем принимают во внимание ответы сервера, и считают существующими все страницы со статусом 200 OK, который не запрещает индексировать такие страницы в поисковой системе, а это может способствовать появлению дублей страниц в поисковой выдаче и затруднит продвижение сайта в целом.

Страница ошибки 404 в шаблонах Joomla

Профессиональные шаблоны Joomla всегда имеют в своём арсенале настроенную рабочую страницу 404-й ошибки, отображаемую при вводе несуществующих адресов.

Как правило, внешний интерфейс данных страниц сильно отличается от общего интерфейса шаблона, что может негативно сказаться на поведенческих факторах: некоторые пользователи могут «испугаться» и покинуть сайт. Во избежание таких потерь посетителей сайта на ровном месте мы рекомендуем создавать настраиваемую страницу для 404-ошибки, отображаемую в интерфейсе шаблона.

Создание страницы 404 в интерфейсе шаблона

Разберем по пунктам, как правильно создать и настроить собственную страницу ошибки 404 в теле стандартного шаблона Protostar для Joomla 3 с отображением контента в области компонента.

Важно знать!

Указанная инструкция актуальна как для Joomla 3, так и для Joomla 4.

  1. Создать и опубликовать материал, который будет отображаться при запросе несуществующей страницы. Примеры опций:
    • Заголовок: «Страница не найдена».
    • Алиас: «error-404».
    • Cодержание: «Указанной страницы не существует. Вероятно, она была удалена или перенесена на другой адрес.»
    • Категория: «Uncategorised».
  2. Создать и опубликовать скрытый пункт меню данного материала с алиасом error-404:
    • Во вкладке Параметры материала необходимо отключить показ всей лишней информации (Автор, Хиты, Дата публикации и т. д.).
    • Во вкладке Параметры ссылки необходимо установить опцию Показать в меню на Нет, чтобы скрыть пункт меню.
    • Во вкладке Параметры страницы можно прописать тег <title>, который будет отображаться вместо названия материала. Например: «Ошибка 404 — страница не найдена».
    • Во вкладке Метаданные выбрать значение метатега Robots noindex, nofollow.
  3. В папке шаблона (/templates/шаблон) создать или заменить существующий файл error.php, который должен содержать только следующий код:
    <?php
    defined( '_JEXEC' ) or die( 'Restricted access' );
    if($this->error->getCode() == '404'){
        header("HTTP/1.1 404 Not Found");
        echo file_get_contents(JURI::root().'error-404');
        exit;
    }
  4. Проверяем функционирование страницы. По запросу несуществующего документа должен отображаться созданный материал.
  5. Проверяем ответ сервера для несуществующей страницы. Для этого можно воспользоваться панелью разработчика в браузере или сторонним веб-сервисом.
  6. Чтобы сделать страницу ошибки 404 более наглядной, рекомендуем добавить в её контент соответствующее изображение, которое без труда можно найти в поисковой выдаче картинок, а также отключить на ней ненужные модули.

Видеоинструкция

Подробности
Категория: 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

Путешествуя в поисках нужной вам информации по какому-либо сайту, вы наверняка не раз попадали на такую страницу:  «ошибка 404. Страница не найдена». Конечно, не очень приятно видеть эту обычно некрасочную и малоинформативную страницу, тем более, если именно там совсем недавно (да-да, пару дней назад вы видели это своими глазами) находилось то, что вы ищете.

В системе управления сайтом Joomla вы можете настроить страницу 404 на своем сайте таким образом, чтобы она не пугала посетителей и по возможности направляла обратно на сайт.

Возможные варианты страницы 404:

  • Настроить «несуществующую» страницу можно в соответствии с шаблоном сайта. В этом случае по умолчанию страницей ошибки будет главная или любая другая страница вашего сайта с меню, модулями и другим наполнением. Таким образом вы предоставите посетителю возможность найти интересующую его информацию другим способом, а вы не потеряете клиента.
  • Следующий вариант – добавить оригинальный текст на страницу 404. Это может быть ссылка на главную страницу, предложения по сотрудничеству, форма поиска, оригинальная картинка или даже реклама. Например, если вы предлагаете POS оборудование, на «несуществующей» странице вы можете извиниться и предложить поучаствовать в акции, например, приобрести фискальный регистратор по специальной цене.

Настроить страницу 404 в joomla можно двумя способами:

  1. Если вы не используете компоненты для ЧПУ, необходимо:
  • создать статью с содержимым для страницы ошибки, не относящейся ни к какой-либо категории;
  • Запомнить id статьи
  • Редактировать файл error.php в папке: templates/system. Удалите содержимое файла и  вставьте код: <?php

defined(‘JPATH_BASE’) or die();

echo file_get_contents(JURI::root().’/index.php?option=com_content&amp;view=article&amp;id=id статьи);

?>

  • id статьи – сюда вставьте номер вашей статьи для страницы 404.

При использовании на сайте компонентов ЧПУ, например: sh404SEF, Artio JoomSEF редактировать файл error.php вручную не требуется. В настройках компонента можно создать страницу 404. После этого наберите в браузере ваш.сайт/ошибка – где ваш.сайт – домен вашего сайта, а ошибка – это специально выдуманный текст, который приведет к ошибке. Если только что созданная вами страница ошибки отображается, значит, вы все сделали верно.

    Зная способы редактирования страниц ошибки 404, вы сможете настроить ее под свои требования и желания, дав пользователю возможность вернуться и найти нужную информацию на вашем сайте.

    0 Пользователей и 1 Гость просматривают эту тему.

    • 25 Ответов
    • 1634 Просмотров

    Недавний топик побудил меня подумать о стандартном выводе ошибок через файл шаблона error.php. В этой теме приведена ссылка на мануал, в котором, на мой взгляд, описан вредный хак, а не способ реализации: суть заключается в том, что при обращении к файлу error.php вызывается редирект на другую страницу с материалом и отдаётся заголовок с кодом 404. На мой взгляд, этот способ не только корявый в плане реализации, но его так же опасно использовать с точки зрения SEO. К тому же, он не позволяет вывести описание ошибки (потом попробуй угадай).

    Признаться, мне было всегда проще сделать HTML версию страницы, чем динамически отображать шаблон с подключенными внешними ресурсами и модулями. После нескольких часов кодинга я разработал свой динамический метод вывода ошибок, который выводит все скрипты, стили, модули — рендерит шаблон через index.php. Хотелось бы поделиться им

    « Последнее редактирование: 14.02.2016, 07:44:47 от Филипп Сорокин »

    Записан

    Мануал корявый
    Роутер еще корявее — вот объясни мне, когда неверный URL ведет на
    1) другую страничку (дубль)
    2) перехватывается системой и доступен в менеджере перенаправлений
    3) не перехватывается плагином перенаправлений но ведет на 404 от движка
    4) вообще не видится и отдается ответ напрямую от nginxapache

    Внутри файла error.php можно получить и код ошибки (для дальнейшего формирования нужного хедера) и ее описание:

    $error_code = $this->error->getcode();
    $error_description = htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8');

    а уж получив эти данные, можно что угодно с ними делать и передавать куда и как угодно…

    в случае возникновения

    4) вообще не видится и отдается ответ напрямую от nginxapache

    вопрос уже не к J ))

    в случае возникновения вопрос уже не к J ))

    Почему?
    Я же использую дефолтный .htaccess!

    вообще не видится и отдается ответ напрямую от nginxapache

    Тоже с этим сталкивался: так и не понял причину.

    Тоже с этим не раз сталкивался: так и не понял причину.

    Во-во.
    Даешь глубокое исследование!

    Вот и сама реализация:

    (Удалено по причине потери актуальности)

    « Последнее редактирование: 13.02.2016, 23:40:51 от Филипп Сорокин »

    Записан

    Кстати, существуют ли способы отрендерить шаблон методами движка?

    Кстати, существуют ли способы отрендерить шаблон методами движка?

    Придётся самому отвечать на свой вопрос :)

    Удалось здорово сократить и улучшить код: теперь в шаблоне нет никаких ограничений, т.к. он выполняется в контексте JDocumentHTML, а не в контексте JDocumentError. На дефолтном Protostar работает отлично, все стандартные методы и свойства доступны из псевдопеременной $this.

    « Последнее редактирование: 14.02.2016, 07:53:55 от Филипп Сорокин »

    Записан

    Окончательно закрыл для себя вопрос создания страницы ошибок — теперь эта страница ничем не отличается от обычных страниц, а её контент обрабатывается системными плагинами. Содержимое страницы может быть изменено как угодно, при этом оно не будет зависеть от разметки и оформления шаблона. И что самое главное — для всей этой красоты не нужно устанавливать никаких сторонних расширений — нужно всего лишь создать один файл и изменить другой. Кому интересно — выложил на своём сайте полную реализацию.

    А зачем обрабатывать 404-ю плагинами?

    честно говоря вообще не понимаю, зачем это :) разве что из спортивного интереса… что не так было с базовым error.php?

    Записан

    Тут дарят бакс просто за регистрацию! Успей получить!
    Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

    А зачем обрабатывать 404-ю плагинами?

    Потому что плагинами обрабатываются все страницы. Чем 404 хуже? Системный плагин SEF, для примера, надо запустить, чтобы скорректировать ссылки? Надо. В предыдущей версии парсил регулярками — не понравилось. Решил плагином =)

    честно говоря вообще не понимаю, зачем это Azn разве что из спортивного интереса… что не так было с базовым error.php?

    Что конкретно вы не понимаете? Если вы будете использовать базовый error.php, то при любом изменении шаблона нужно отдельно менять дизайн, раскладку в error.php, потому что базовый error.php к шаблону не относится.

    Короче, народ не понял ничего :) Мда…

    Если вы будете использовать базовый error.php, то при любом изменении шаблона нужно отдельно менять дизайн, раскладку в error.php, потому что базовый error.php к шаблону не относится.

    Зачем дизайн менять? Вот часто используемый известный вариант error.php с подгрузкой статьи «404»:

    Что в этом варианте вас не устроило?

    Записан

    Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.

    Что конкретно вы не понимаете?

    та не, я ниче :) я вообще за любой кипиш кроме голодовки :) просто тут так сказать глубину мысли не познал :) например

    Если вы будете использовать базовый error.php, то при любом изменении шаблона нужно отдельно менять дизайн

    а в вашем решении разве не надо менять дизайн? разница только в том, что это внешний файл и его копировать надо? так скопировать просто error.php из старого шаблона, и все. разве нет?

    потом

    базовый error.php к шаблону не относится

    это как? как это не относится? может мы о разных error.php? я о том, который в корне шаблона.

    дальше, обработка плагинами. ну тут вопрос спорный… я наверное все таки склоняюсь в сторону, что 404 не нужно обрабатывать плагинами. потому что 404 рисуется раз и навсегда, и я бы не хотел чтобы при установке какого либо плагина, который нужен во фронте, 404 поломалась по недосмотру из-за него.

    поэтому не то, чтобы

    Короче, народ не понял ничего :) Мда…

    задумку поняли. не поняли — зачем? :)

    Записан

    Тут дарят бакс просто за регистрацию! Успей получить!
    Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

    Зачем дизайн менять? Вот часто используемый известный вариант error.php с подгрузкой статьи «404»:
    Что в этом варианте вас не устроило?

    fsv, ну я уже написал в начале. Во-первых, не известно, как поисковики к этому отнесутся: пользователю отдаётся 404 ошибка, а его самого перебрасывает на другую страницу. Возможна пессимизация. Во-вторых, при перенаправлении теряется контекст JDocumentError — мы уже не сможем работать с объектом ошибки, например, для того, чтобы вывести описание. Ну и последнее: это не всегда работает корректно, и я считаю, что это хак.

    а в вашем решении разве не надо менять дизайн?

    Нет. Дизайн и раскладка берётся из шаблона со всеми стилями, скриптами, модулями. По-сути, мой вариант — это обычная страница, только позиция компонента (который отсутствует при ошибке), замещается телом ошибки.

    дальше, обработка плагинами. ну тут вопрос спорный… я наверное все таки склоняюсь в сторону, что 404 не нужно обрабатывать плагинами. потому что 404 рисуется раз и навсегда, и я бы не хотел чтобы при установке какого либо плагина, который нужен во фронте, 404 поломалась по недосмотру из-за него.

    Вы отдаёте заголовок 404 и после этого можете менять страницу ошибки как захочется — боту главное получить заголовок.

    fsv, ну я уже написал в начале. Во-первых, не известно, как поисковики к этому отнесутся: пользователю отдаётся 404 ошибка, а его самого перебрасывает на другую страницу.

    кого куда перебрасывает?

    Записан

    Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.

    пока почитал, подумал: а не хотите в теме всё не расказывать и этим самым обламать и туда: в комм раздел? и там писать
    может не прав, что подумал.имхо.

    Записан

    Миграция, установка, обновление версий Joomla  |  Создание сайтов «под ключ»  |  Эксклюзивные заглушки «offline»  |  Работа с «напильником» над шаблонами и расширениями

    Нет. Дизайн и раскладка берётся из шаблона со всеми стилями, скриптами, модулями. По-сути, мой вариант — это обычная страница, только позиция компонента (который отсутствует при ошибке), замещается телом ошибки.

    понял наконец-то :) уж извините, вообще не думал о таком варианте. считаю его неверным.

    пользователю отдаётся 404 ошибка, а его самого перебрасывает на другую страницу.

    никуда никого не перебрасывает. все 1:1 как и в вашем варианте, за исключением того, что ваш вариант экономнее по ресурсам сервера.

    Записан

    Тут дарят бакс просто за регистрацию! Успей получить!
    Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

    кого куда перебрасывает?

    А, простите. Не увидел: там file_get_contents. Похожий способ просто есть, но только с перенаправлением.

    никуда никого не перебрасывает. все 1:1 как и в вашем варианте, за исключением того, что ваш вариант экономнее по ресурсам сервера.

    Ну я бы не сказал, что один в один. Мы теряем контекст JDocumentError, мы не можем вывести описание ошибки и использовать методы этого объекта. Гибкость также теряется: если сайт мультиязычный, то для каждого типа ошибки мы должны наплодить по 2-3 материала на разных языках. Наконец имеется лишний запрос (это, конечно, не очень существенно, но, я считаю, что криво).

    А если материал вдруг удалить, то вообще будет полное разочарование :)

    Мы теряем контекст JDocumentError, мы не можем вывести описание ошибки и использовать методы этого объекта.

    if ($this->error->getCode() == '404') 
    {
    echo $this->error->getMessage(). '<br>';
    echo '<pre>'.print_r($this, true).'</pre>';   // JDocumentError Object
    }

    А если материал вдруг удалить, то вообще будет полное разочарование :)

    если у бабушки…, то это уже дедушка

    Записан

    Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.

    теряется контекст JDocumentError — это имеется в виду когда делаем file_get_contents. это же уже не 404.

    в целом так и есть, предложенный вариант более гибок чем file_get_contents. кто любит так делать 404 — можно советовать :)

    Записан

    Тут дарят бакс просто за регистрацию! Успей получить!
    Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

    fsv

    Ну и как вы сделаете это в материале? Представьте, что у вас SQL ошибка, нужно вывести описание, а вы цепляете другой материал и выводите страницу данного материала. Где вы будете выводить там описание и как?

    если у бабушки…, то это уже дедушка

    Ну… это отсылки к рыжему и конопатому. А вот при недоступности страницы реально может случиться что-то вроде бесконечного перенаправления, только в 100 раз хуже. Как откроет бот удалённую страницу — и конец настанет вашему серверу :)

    теряется контекст JDocumentError — это имеется в виду когда делаем file_get_contents. это же уже не 404.

    да, в file_get_contents не будет ошибки. При ответе не об этом думал, потому что…

    Ну и как вы сделаете это в материале? Представьте, что у вас SQL ошибка, нужно вывести описание, а вы цепляете другой материал и выводите страницу данного материала. Где вы будете выводить там описание и как?

    … я не буду выводить все подряд ошибки. Это вредно для здоровья. Для юзера хватит стандартных фраз в материале, никто письма вам писать не будет. Ошибка – в логах.
    И да, имея текст ошибки в переменной, в чем проблема его использовать на подгруженной в другую переменную странице? Извращение какое-то, но это так, теоретически…

    Да я не против. Подобные раскопки на самом деле очень полезны. Всегда что-то нужное вынесешь. Только по этой теме – я так пока повторять не готов.

    Записан

    Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.

    Описание определенных ошибок можно сделать доступным для супер-администраторов. Все в одном файле, не нужно создавать никакие материалы. Вот вы говорите, что это извращение — выводить красиво отформатированное описание ошибки в позиции компонента, а я считаю извращением при отладке лезть в логи. Обновил страницу — лезь опять в логи. Зачем? Логи проверять, конечно, полезно, но не в этом случае. Ещё я считаю извращением подгружать какие-то переменные в других пространствах имён. А при запросе к другому материалу подгружать в этом материале переменные — это настоящее извращение.

    « Последнее редактирование: 14.02.2016, 19:49:21 от Филипп Сорокин »

    Записан

    So, let’s say you have built a website and done possibly everything to drive traffic to your site. From adding incredible content to doing SEO, you have implemented every tip and trick to grow your traffic. But what about a custom 404 page? Did you miss out on that?

    When it comes to growing your business online, every visitor is important. And when you don’t set up your own customized 404 page, chances are you lose a sale every time a visitor stumbles upon a 404 error. We can’t afford to do that, right? In today’s article, we will walk you through a step by step process to customize your own Joomla 404 page using SP Page Builder. Let’s get started!

    What is a 404 Error Page

    A 404 error page is thrown when visitors try to access a page on your website which does not exist. The HTTP 404 status code indicates the browser was able to communicate with the server but could not find what was requested. This usually happens when the visitors click on a broken link, misspell a URL, etc.

    The common reasons why a 404 error message could appear are:

    • The URL or its content is moved without adjusting the internal links accordingly
    • The URL or its content is deleted
    • The URL is typed into the browser incorrectly
    • The server where the website is hosted is facing an issue
    • The entered domain name does not exist anymore

    Why You Should Care About Your Joomla 404 Page

    While 404 errors can be frustrating, they cannot be ignored. You have no control over a misspelled URL entered on a visitor’s browser or a broken connection. Therefore, our primary goal is to turn this negative experience into a positive one. A custom 404 error page can:

    • Reduce the bounce rate and keep users on your website
    • Keep people engaged with your site and moving through your sales process
    • Leave them with a good feeling after a positive resolution to their 404 problem
    • Maintain consistent branding across your site
    • Attract additional attention for your brand if you do a good enough job

    These are enough reasons to care about your Joomla 404 page.

    What to Include in Your 404 Page

    So, that leaves us with only one question. What to include in our custom 404 page? A good 404 page should have clear navigation. It should show the visitor the path where they wanted to go in the first place. Or, at least provide a link to the Home page. You can also be creative and display some interesting images or interactions to keep the visitors on the loop before being redirected. Landing on a fun, navigable page can be a nice surprise for the lost visitors, no?

    How to Track the 404 Errors on Your Joomla Site

    If you are using Google Analytics for your Joomla site you can easily track how many 404 errors visitors are encountering. From Google Analytics Pages settings you can change the Primary Dimension to Page Title and search for “page not found” to see a list of the broken URLs that triggered the 404 errors.

    You can also set an alert on Google Analytics that will let you know each time your 404 page view increases above a certain threshold. Check this help center article to learn how to set a Custom Alert.

    Create Your Custom 404 Page With SP Page Builder

    Now, we will design our own custom Joomla 404 page using SP Page Builder. You can simply create a page just like how we normally create pages using SP Page Builder. To do that, go to your Joomla administrator dashboard > SP Page Builder > Pages > New. Give your page a title and then save to start editing from the front-end editor.

    SP Page Builder has 50+ addons to add creative and fun designs to your web pages and the 404 page is a great way to show that off. You can add images, videos, search bar, interactive elements, and make this page really interesting. The primary focus of the design process is to make the users understand they are lost but can still navigate to their desired content. That way, they are less likely to bounce and go to your competitor’s site.

    Let’s see an example of how to build a custom 404 page using SP Page Builder:

    Step 1: Select your desired addon. For this tutorial, we will be using the Image Content addon.

    Step 2: Replace the existing image with your custom image or GIF.

    Custom Joomla 404 page

    Step 3: Edit the Addon title. Here, we have set the title to 404 Page Not Found!

    Custom Joomla 404 page

    Step 4: Edit the content with some meaningful text. The goal is to help the lost visitors navigate back to their desired page.

    Custom Joomla 404 page

    Step 5: Lastly, edit the Button Text and the Button Link to take the users back to your homepage.

    Custom Joomla 404 page

    Assign the Page to a Menu

    Once you have designed your 404 page, it is time to assign the page to a menu item to get the URL of our custom 404 page. Simply do the following to get the job done:

    Menu Title: Give your menu item a title, we have given it 404.

    Menu Item Type: Menu Item Root

    Select Page: Select the custom 404 page that you have created earlier. Save the menu. Make the 404 menu item hidden (important).

    Custom Joomla 404 page

    Here’s why we need to assign the page to a menu — the Link. Copy the link, we will need this in our next step.

    Edit the error.php File in Your Template Root Directory

    From the template root directory, we need to edit the error.php file. To do that go to your Joomla root directory > templates > shaper_helixultimate > error.php. Please note, for this tutorial we are using our Helix Ultimate template. Select your template and the path accordingly.

    Now, add the following code at the beginning of the file.

    // custom 404 redirect
    $config = JFactory::getConfig();
    $sef = $config->get('sef');
    $sef_rewrite = $config->get('sef_rewrite');
    $sef_suffix = $config->get('sef_suffix');
    $redirect_url = JURI::base();
    if(!$sef_rewrite) {
    	$redirect_url .= 'index.php/';
    }
    $redirect_url .= '404'; // menu alias
    if($sef_suffix) {
    	$redirect_url .= '.html';
    }
    // if sef is turned off
    if(!$sef) {
    	$redirect_url = 'index.php?option=com_sppagebuilder&view=page&id=10';
    }
    if (($this->error->getCode()) == '404') {
    	header('Location: ' . $redirect_url, true, 301);
    	exit;
    }
    

    Replace

    index.php?option=com_sppagebuilder&view=page&id=10

    with the URL of the page that you have copied earlier.

    Custom Joomla 404 page

    Final Outcome

    And, you are done! Now, you have your own custom 404 page that has the same header, footer, and navigation link as the rest of your website pages.

    Wrapping Up

    The default 404 error page does not give the visitors enough information about the reason for the error and how to proceed further. But a custom 404 page can add value to your Joomla site and navigate the lost visitors back to your website. So, what’s the wait? Set up your own custom Joomla 404 error page today and let us know in the comments how it went. Good luck!

    Try SP Page Builder for FREE!Get SP Page Builder Pro

    Понравилась статья? Поделить с друзьями:
  1. Error php is not running wordpress
  2. Error php home is not specified or invalid press fix to edit your project configuration
  3. Error phone code invalid
  4. Error phasmophobia ошибка
  5. Error pg hba conf