Joomla если на странице ошибка

Вступление

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

Основные языки программирования, на которых написана CMS Joomla это два сценарных языка PHP и JavaScript. При этом сценарный язык (анг.scripting language) PHP является основным языком Joomla и, как правило, ошибки, возникающие при работе с Joomla это результат его неправильной (некорректной) работы.

В этой статье я сформулирую первые действия, что сделать сначала, чтобы осуществить правильный поиск ошибок и после найти отладку (способ исправления) «неправильного» скрипта вашей Joomla.

Прежде всего, ошибку нужно увидеть. Речь идет не о результатах ошибки (пропадании сайта и т.п.). Речь идет, как увидеть причину ошибки, если хотите определить диагноз ошибки. От этого зависит дальнейшая отладка системы и исправление ошибки.

Видимость ошибок в браузере

Первое место, где вы видите сообщение о возникшей серьезной ошибке, это ваш рабочий браузер. Вы наверняка встречали при открытии сайтов, вместо страниц сайта пустое окно браузера и в нем цифровая (кодовая) ошибка. И речь не идет об ошибках класса 4×× (Ошибки со стороны клиента), например, ошибка 403-Ничего не найдено. Речь о более серьезных ошибок, начинающихся с цифры «5». Это класса ошибок 5×× (Ошибки со стороны сервера).

Ошибка 500

Ошибка 500 это любая ошибка со стороны сервера, которая не расшифрована в остальных кодах 501-510. Это наиболее часто встречающаяся ошибка, связанная с ошибками в коде системы. Если при работе с системой Joomla вы в браузере видите сообщение об ошибке 500 , эта ошибка выдается сервером Apache и ее причину нужно смотреть в логе ошибок вашего веб-сервера. (О логах ошибок веб-сервера читать ТУТ).

Как правило, из лога ошибок, будет понятно, какой файл системы привел к ошибке. После этого нужно переходить к этому конкретному файлу и решать конкретную, уже локализованную причину ошибки. Но это не всегда так просто. Из журнала лога ошибок, бывает не понятно, какие конкретные действия приводят к ошибке и какой PHP -код ее сформировал.

Вообще говоря, интерпретатор PHP всегда определяет возникающие ошибки. И показ ошибок Вам, изначально, зависит от настроек конкретного сервера. Сервер должен быть настроен так, чтобы интерпретатор PHP имел возможность сообщить об ошибке, а вы могли увидеть это сообщение. Причем интерпретатору должен быть указан вид вывода сообщения об ошибке. Это или окно браузера или запись в журнале ошибок или и то и другое по выбору.

Настройка вывода ошибок зависит от вашего хостинга.

Вывод ошибок на рабочем сервере

На рабочем сервере (коммерческом хостинге) включение вывода ошибок ищите в настройках хостинга. Как правило, вывод ошибок по-умолчанию включен, и вывод ошибок настроен как вывод сообщений в журнал ошибок. Убедитесь, что эта функция сервера включена. Опять-таки, по — умолчанию, не имеет смысла включать на рабочем сервере вывод ошибок на экран. Эти ошибки будут видеть все гости сайта и это лишнее. Однако в критических, аварийных ситуациях, можно воспользоваться временно, выводом ошибок на экран. Об этом чуть ниже.

Вывод ошибок на локальном сервере

На локальном (домашнем) сервере, у вас есть все права на любые настройки сервера и вывод ошибок вы можете настроить сами. Наверное, все готовые платформы локального сервера (OpenServers, Денвер, Xmapp и т.д.) уже настроены на вывод ошибок в журнал и/или на экран. Но в том, то и прелесть локального сервера, вы всегда можете изменить любые его настройки.

Poisk-oshibok-php-6

Настроить вывод ошибок на локальном сервере нужно в файле php.ini.

Для разрешения вывода ошибок в файле php.ini должна быть строка:

error_reporting(E_ALL ^ E_NOTICE);// Добавлять сообщения обо всех ошибках, кроме ошибок NOTICE 
// Это значение включено по умолчанию в php.ini

Примечание: NOTICE ошибки это возможные, но не явные ошибки. Например, опечатка, предупреждение о плохом стиле, и.т.п.

error_reporting = E_ALL //Вывод всех ошибок//

Для вывода ошибок в журнал, должна быть строка:

log_errors = On

Для вывода ошибок на экран в файле php.ini должна быть строка:

display_errors = On

Вывод ошибок на экран, во время старта PHP

display_startup_errors=On

Понятно, что замена «on» на «off» все это отключит.

Повторюсь, интерпретатор PHP сам выводит сообщения об ошибках, нужно только разрешить и дать ему возможность (настроить) эти сообщения выводить в журнал на сервере, а при необходимости показывать их на экране.

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

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

Вывод ошибок, режим отладка Joomla 2,5

Административная панель сайта ->Меню ->Сайт->Общие настройки->Система

Poisk-oshibok-php-1

Вывод ошибок, режим отладка Joomla 3,x

Административная панель сайта-> Меню ->Сайт->Общие настройки->Система

Poisk-oshibok-php-3

В обоих версиях можно настроить, какой режим вывода ошибок во время отладки должен быть.

Poisk-oshibok-php-2

 Poisk-oshibok-php-4

Включение режима отладки системы Joomla из панели сайта, может не сработать. Это может произойти, если на вашем хостинге такой режим не включен (в файле php.ini). Если у вас нет доступа к файлу php.ini, а потребность включить режим отладки есть, то просто напишите в support вашего хостинга и попросите временно включить режим вывода ошибок. ( Я так и делаю). После устранения ошибки, верните все в исходное состояние, иначе гости вашего сайта будут видеть все ошибки на экране.

Но и из этой ситуации, есть выход. Есть плагин Joomla, который выводит ошибки системы во всплывающем окне и с видимостью только для вас. Это плагин j!Dump.

Плагин j!Dump Joomla

Poisk-oshibok-php-5

Это плагин для отладки системы Joomla в реальном времени, с выводом ошибок на экран только для вас. Плагин работает на версиях Joomla 2.5 и 3.х. Устанавливается плагин стандартным способом. В настройках понятен и, по отзывам, вполне работоспособен. На сайте extensions.jоomla.com этот плагин есть.

Итоги статьи

  • Итак, при работе с Joomla у вас «выскакивают» ошибки на стороне сервера приводящие к некорректной работе системы или ее отключении (Error). Что делать?
  • Если вы не программист и не находитесь в процессе разработки и к этому у вас рабочий (не локальный сервер), то прямиком «идете» на сервер и смотрите журнал ошибок (лог ошибок);
  • Если журнал ошибок отсутствует, то в настройках сервера ищите и включаете запись ошибок в журнал;
  • Если из журнала не удалось понять причину ошибки, включаете режим «Отладка системы» в административной панели сайта;
  • Если режим отладки не включается, обращаетесь в support сервера с просьбой такой режим временно включить. Включается он в файле php.ini;
  • Если вы работаете на локальном (домашнем) сервере, то самостоятельно проверьте настройки возможности интерпретатора PHP для вывода, показа и записи PHP ошибок, возникающих при работе. Опять таки, файл php.ini.

Это все, что хотелось сказать про Поиск и вывод PHP ошибок Joomla!

©Joomla-abc.ru

Другие статьи 

Errors, warnings, alerts and notices can be displayed from any component, module, plugin or template using the methods outlined below.

// Get a handle to the Joomla! application object
$application = JFactory::getApplication();

// Add a message to the message queue
$application->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error');

/** Alternatively you may use chaining */
JFactory::getApplication()->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error');

The second argument to the enqueueMessage function is the type of the message. The default is message, but error results in a different style for the message. The message will be displayed in place of a special jdoc:include statement in your template. Place the following in your template at the location where you want messages to appear.

<jdoc:include type="message" />

Message[edit]

Message

JFactory::getApplication()->enqueueMessage('Message');

Notice[edit]

Notice

JError::raiseNotice( 100, 'Notice' );

Warning[edit]

Warning

JError::raiseWarning( 100, 'Warning' );

Error[edit]

Error

JError::raiseError( 4711, 'A severe error occurred' );

Joomla! 3.x is Bootstrapped[edit]

Since Joomla! Joomla 3.x uses Bootstrapped templates, the messages will use the standard Bootstrap CSS styles for Alerts.

See: https://getbootstrap.com/2.3.2/components.html#alerts

The general syntax remains:

JFactory::getApplication()->enqueueMessage('Your Message', 'type');

Where type can be one of

  • ‘message’ (or empty) — green
  • ‘notice’ — blue
  • ‘warning’ — yellow
  • ‘error’ — red

See Also[edit]

  • JError on api.joomla.org
  • JApplication on api.joomla.org

Разберёмся как сделать включение / отключение показа ошибок на сайте. Через админку и через файл htaccess.

Показ ошибок (Notice, Warning, Fatal Error) это важная и нужная функция, хорошо что она есть! Иначе бы вебмастера месяцами искали вручную ошибки в коде своего сайта.

Как включить показ ошибок из админки Joomla 3?

Для этого в админке Joomla переходим «Система — Общие настройки».

показ ошибок php

Переходим на вкладку «Сервер», там увидите опцию «Сообщения об ошибках». Выбирайте режим «Максимум».

включить показ ошибок php в joomla

Сохраняем.

После этого на страницах сайта будут появляться сообщения об ошибках, если таковые имеются. Это полезно, если где-то на сайте у вас появляется белый экран.

После включения показа сообщений об ошибках на белом экране вы увидите тип ошибки и её описание.
По этому описанию можно найти решение в поиске Яндекса или Гугла.

Включение показа ошибок php через configuration.php

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

В нём есть директива 

public $error_reporting = 'default';

Чтобы включить показ ошибок, измените значение default на maximum

Как включить показ ошибок через .htaccess

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

Открываем .htaccess — обратите внимание точка впереди. Если у вас нет такого файла, то создайте его.
В CMS системах он обычно называется htaccess.txt и его достаточно просто переименовать в .htaccess

В самом верху добавляем строчку:

php_flag display_errors on

А строчка:

php_flag display_errors off 

выключает показ ошибок.

Какие сообщения об ошибках php бывают?

Самые частые это:

Notice — уведомление о незначительных ошибках в коде. Обычно работоспособность сайта при этом сохраняется.

Просто в шапке выходят такие вот уведомления.

Warning — предупреждение о более серьёзных ошибках. Иногда при таком предупреждении работоспособность сайта также сохраняется, иногда белый экран. 

Fatal Error — предупреждение о критических ошибках, при которых выполнение сценариев невозможно. Сопровождается белым экраном.

Отключайте показ ошибок!

После включения и наладки сайта обязательно отключайте показ ошибок. Потому что это НЕ безопасно, да и посетителям сайта их видеть незачем.

Желаю вам всего хорошего!

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

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

Недавний топик побудил меня подумать о стандартном выводе ошибок через файл шаблона 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 от Филипп Сорокин »

Записан

Этот урок покажет Вам как создать какую-либо произвольную страницу ошибки 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.

  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, то используйте, пожалуйста, следующий код:

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

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

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

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

Исключите свою произвольную страницу ошибки 404 из поисковых двигателей

  • В Joomla 2.5 и 3.x: [откройте свой материал ‘404’] в менеджере материалов > ‘Параметры публикации’ > и установите параметр ‘Мета-тег Robots’ на опцию «No index, no follow «.
  • В других версиях добавьте в корневую директорию своего веб-сайта в файле robots.txt, заменив (index.php?option..) на URL-ссылку своего материала ‘404’, следующую строчку:
    Disallow: /index.php?option=com_content&view=article&id=75

Дополнительные шаги, [рекомендуемые] для улучшения [Вашей] произвольной веб-страницы ошибки 404

  • Следуйте лучшим практикам описанным здесь: http://www.alistapart.com/articles/perfect404/
  • Будьте изобретательны и добавьте 404 Haiku или, может быть какую-либо интересную фотографию

Другая информация по произвольной странице ошибки 404

  • Произвольные страницы ошибки
  • Страницы системных ошибок
  • HTTP/1.1 Определения кода статуса
  • Google Webmaster — Анализ ошибок кроллинга

Узнайте, как правильно создать и настроить собственную страницу ошибки 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 более наглядной, рекомендуем добавить в её контент соответствующее изображение, которое без труда можно найти в поисковой выдаче картинок, а также отключить на ней ненужные модули.

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

Вступление

Страница ошибок, которую сервера 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 и оптимизация

Путешествуя в поисках нужной вам информации по какому-либо сайту, вы наверняка не раз попадали на такую страницу:  «ошибка 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, вы сможете настроить ее под свои требования и желания, дав пользователю возможность вернуться и найти нужную информацию на вашем сайте.

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

    Создаем новый материал для показа 404 ошибки.

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

    Код этой страницы такой:

    <div style="text-align:center;">
    <h1 class="error-title">404</h1>
    <h2>Ой... Мы не можем найти эту страницу!</h2>
    <p class="lead">Мы сожалеем, но страница на которую Вы пытались перейти не существует.<br />Пожалуйста вернитесь на предыдущую страницу или воспользуйтесь меню сайта.</p>
    <a href="javascript: history.go(-1)" ><button>Предыдущая страница</button></a>
    </div>

    Прикрепляем материал к пункту меню joomla, чтобы ссылка страницы с ошибкой имела человекопонятный url, например 404-error.

    Не забываем ссылку меню сделать скрытой

    Создаем файл error.php в папке шаблона сайта /templates/ваш_шаблон, который будет возврашать код ошибки и показывать нашу кастомную страницу.

    Код содержимого error.php

    <?php
    defined('_JEXEC') or die;
    
    if (!isset($this->error))
    {
    	$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
    	$this->debug = false;
    }
    
    if($this->error->getCode()=='404') {
    	header("HTTP/1.0 404 Not Found");
            $url=JURI::root()."index.php/404-error";
            $data = file_get_contents($url) or die("Cannot open URL");
            echo $data;
            break;
    }
    ?> 

    Проверяем открывается ли страница с ошибкой. Вводим несуществующий url, примерно так http://soft-setup.ru/iuensg

    Если открылась наша кастомная страница по адресу /404-error, то все сделано правильно.

    Проверяем возращает ли наш сайт 404 ошибку роботу.

    Проверить ответ сервера можно в webmaster.yandex.ru. переходим в Инструменты/Проверка ответа сервера. Вводим несуществующий url и жмем проверить.

    Получили код статуса HTTP: 404 Not Found. Что и требовалось получить.

    страница ошибки 404 Jomla

    Приветствую друзья! В данном посте я поведаю вам как сделать страницу 404 для Joomla. Порыскав по блогам схожей тематики, я наткнулся на массу копипаста и решил сделать просторы интернета немного разнообразней. Так и увидела свет данная статья (шучуsealed).

    Откуда берется ошибка 404 Joomla?

    Содержание:

    • Откуда берется ошибка 404 Joomla?
    • Самые известные причины возникновения ошибки 404 Joomla
    • Что такое ERROR 404?
    • О важности создания страницы 404
    • Делаем страницу ошибки 404 для Joomla 3.6

    После того как Яндекс.Вебмастер сообщил о существовании нескольких страниц 404 моего веб-проекта, я решил вникнуть в суть проблемы и взять быка за рога. Ознакомившись с десятками блогов, пришел к выводу, что такая проблема существует у каждого вебмастера. Поэтому не отчаивайтесь. Все дело в том, что удаляя какой-либо материал со своего сайта, поисковики по-прежнему продолжают индексацию ликвидированных уже несуществующих страниц, в результате чего система сообщает посетителю о том, что страница не найдена. Возникшая проблема в 99% связана с вашими действиями. В моем случае страницы error 404 появились из-за меня.

    Как это произошло? По моей глупости! Изучая азы сайтостроения, продвижения и оптимизации я решил что не помешало бы заняться оптимизацией изображений. В итоге я изменил некоторые названия ранее проиндексированных картинок в соответствии с правилами SEO-оптимизации. В следствии, ранее проиндексированные картинки стали распознаваться как новые, а прежние вели на страницу ошибки 404.

    Самые известные причины возникновения ошибки 404 Joomla

    1. Страница удалена с сайта, но по-прежнему продолжает индексироваться поисковиками (со временем поисковые боты автоматически удалят эту страницу с индекса).

    2. Администратор (то есть вы) изменили название поста либо переместили в более подходящую категорию (со временем эта проблема решится автоматически и ранее проиндексированные страницы исключатся из поиска).

    3. На сервере возникли непредвиденные сбои как раз в момент отправления НТТР запроса. Проблема несущественная, так как может быть решена способом обновления страницы.

    4. Ошибка возникла из-за неправильного ввода адреса в адресной строке браузера. Проверьте правильность написания символов.

    Что такое ERROR 404?

    Ошибка 404 Not Found в протоколе HTTP извещает возможность связи с сервером, но в свою очередь сервер не способен найти запрашиваемый файл. В идеале подчас запроса сервер получает статус с кодом «200 ОК», что гласит о работоспособности запрашиваемого документа.

    О важности создания страницы 404

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

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

    Делаем страницу ошибки 404 для Joomla 3.6

    Заходим в панель управления Джумла – Материалы/Менеджер материалов/Создать материал. В поле заголовок пишем что-то наподобие – Ошибка 404. Страница не найдена. Алиас создается в автоматическом режиме, но в этот раз, мы его пропишем сами – error-404. В текстовый редактор вставляем подобающую картинку и прописываем возможные причины возникновения ошибки. Также не забудьте поставить ссылку на главную страницу сайта.

    создание страницы 404 при помощи материала

    Правее «Состояние» оставляем «Опубликовано». Категория — «Uncategorised», таким способом мы предотвратим отображение материала на сайте. Больше в этом окне ничего не изменяем. Теперь нам нужно переместится в подменю «Публикация» и в «Мета-тег Robots» указать «No index, no follow».

    запрет на индексацию

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

    id материала

    Полдела сделано. Далее переходим в корень нашего сайта – ваш сайт/templates/ваш шаблон и находим файл error.php. Если там его нет, мы его туда зальем. Для этого перейдем по пути – ваш сайт/templates/system и скопируем файл error.php в наш шаблон. Открываем перемещенный файл с помощью текстового редактора и находим следующие строки:

    <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=ВАША ЦИФРА‘);
    exit;} ?>

    либо:

    <?php

    defined(‘JPATH_BASE’) or die();

    echo file_get_contents(JURI::root().’/index.php?option=com_content&view=article&id=ВАША ЦИФРА‘);

    ?>

    Где в строчке index.php?option=com_content&view=article&id=ХХ выполняем соответственную корректировку. Теперь можно сохранять файл, после чего ваша страница ошибки 404 будет отредактирована.

    Сначала я использовал первый вариант, но позже заметил, что ответ сервера  выдает код 302, что не очень хорошо.  После редактирования файла error.php рекомендую сразу же проверить код ответа сервера, воспользовавшись специальным сервисом, к примеру — http://mainspy.ru/otvet_servera. Если  вы не в курсе, существуют ли на вашем сайте страницы 404, узнать об их наличии можно с помощью Яндекс Вебмастер. Для проверки зайдите во вкладку Статистика/Индексирование/Исключенные страницы. Здесь же можно посмотреть и HTTP-код каждой проиндексированной страницы.

    исключенные из поиска страницы

    Помимо этого можно скрыть несуществующие страницы от индексации, внеся определенную команду в файл robots.txt. Для этого необходимо зайти в корень вашего сайта/robots.txt и прописать соответствующую директиву: Disallow: /404.

    Как видите, открытая в браузере страница 404 изменилась, но она перегружена ненужными модулями. Давайте закроем их. Для этого переходим в админку Joomla – Расширения/Менеджер модулей. Заходим в модуль во вкладку «Отображение по условиям» и опускаемся в самый низ.

    вкладка - отображение по условиям

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

    исключаем не нужные модули

    Чуть было не забыл, вот как эта страничка выглядит у меня.

    моя страница 404

    Спасибо за внимание, надеюсь, у вас хватило терпения дочитать этот пост до конца и преобразить свою страницу 404. Делитесь своими удачами и неудачами в комментариях. До скорых встреч на страницах Stimylrosta.

    сообщить об ошибке

    Обнаружили в тексте грамматическую ошибку? Пожалуйста, сообщите об этом администратору: выделите текст и нажмите сочетание горячих клавиш Ctrl+Enter

    Понравилась статья? Угостите админа кофе.

    Недавно столкнулся проблемой, когда после перехода на несуществующую страницу сайта, сама joomla перенаправила меня на ошибку «404 – Материал не найден» или «Ошибка 404! Страница не найдена». Например, у Вас есть страница http://домен.com/stranica.html, а пользователь ввел в адресную строку несуществующую URL http://домен.com/stranica123.html, то joomla просто открывает белое окно с сообщением…

    Недавно столкнулся проблемой, когда после перехода на несуществующую страницу сайта, сама joomla перенаправила меня на ошибку «404 – Материал не найден» или «Ошибка 404! Страница не найдена».

    Например, у Вас есть страница:
    http://домен.com/stranica.html

    А пользователь ввел в адресную строку несуществующую URL:
    http://домен.com/stranica123.html

    В этом случае joomla просто открывает белое окно с сообщением, что такой страницы на сайте нет.
    Ниже на ней перечислены возможные причины, по которым посетитель не может попасть на запрашиваемую им страницу.

    Выглядит она так:

    oshibka 404 1

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

    Как решить эту проблему?
    Необходимо сделать страницу ошибки 404 более привлекательной и имеющей дизайн самого сайта.

    Создание в joomla страницы «Ошибка 404! Страница не найдена».

    1. Первым делом войдите в админку joomla.

    oshibka 404 2

    2. Страница ошибки 404 – это обычная статья, поэтому откройте «Материалы» — «Менеджер материалов» и нажмите «Создать материал».

    oshibka 404 3

    3. Теперь:

    • В поле «Заголовок» впишите название страницы, например «ошибка 404! Страница не найдена».
    • В поле «Алиас» ОБЯЗАТЕЛЬНО пропишите «error».
    • Создайте страницу, оформив ее так, как посчитаете нужным. Я, например, вверху написал «Ошибка!» (Заголовок 1-го уровня), ниже вставил картинку ошибки, которую можно скачать в Интернете, а потом под изображением написал «страница не найдена» (Заголовок 2-го уровня). После этого все выровнял по центру.

    oshibka 404 4

    4. В правой части материала обязательно выберите категорию «Без категории» (на английском «Uncategorised»).

    oshibka 404 5

    5. Материал готов, теперь нажмите «Сохранить и закрыть».

    oshibka 404 6

    6. Теперь нужно создать новое меню: «Меню» – «Менеджер меню» — «Создать меню».

    oshibka 404 7

    7. Назовите меню, как Вам будет удобнее. У меня оно будет «Скрытое меню», а его тип: «hidden-menu». После заполнения этих обязательных полей нажимаем «Сохранить и закрыть».

    oshibka 404 8

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

    oshibka 404 9

    9. В открывшемся меню нажмите «Создать».

    oshibka 404 10

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

    oshibka 404 11

    11. В открывшемся окошке выберите «Материалы» — «Материал».

    oshibka 404 12

    12. Теперь необходимо выбрать созданный нами материал. Для этого нажмите «Выбрать».

    oshibka 404 13

    {module Баннер-статья-4}

    13. В открывшемся окошке нажмите на созданном материале «Ошибка 404! Страница не найдена».

    oshibka 404 14

    14. В поле «Алиас» ОБЯЗАТЕЛЬНО пропишите «error».

    oshibka 404 15

    15. Когда все заполнили, нажмите «Сохранить и закрыть».

    oshibka 404 16

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

    У меня страница «Ошибка 404» выглядит так:

    oshibka 404 17

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

    Ошибка 404 Joomla

    От автора: приветствую Вас дорогой друг. При посещении Вашего сайта, так или иначе, пользователи будут обращаться к несуществующим страницам. И причины могут быть самыми различными: ошибка в написании адреса, удален материал, который ранее был проиндексирован поисковой системой и т.д. Поэтому в данной статье мы с Вами поговорим о том, что такое ошибка 404 Joomla, так же кратко рассмотрим компонент sh404sef joomla 3 и посмотрим какие инструменты он предоставляет по обработке вышеуказанной ошибки.

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

    Ошибка 404, или 404 Not Found – это стандартный код ответа протокола HTTP, который указывает на то, что запрашиваемый ресурс (страница) не найден. Но Вы должны понимать, что если возникает данная ошибка – доступ к серверу есть, но при этом, не возможно найти данные, соответствующие запросу пользователя. Общаясь с сервером по протоколу HTTP, так или иначе мы получаем различные трехзначные коды состояния запроса, и если ресурс успешно найден, то в качестве ответа, Вы получите, следующий результат — 200 Оk (Ok – пояснение к коду ошибки). Если же ресурс не доступен – то, как мы уже знаем — ошибка 404.

    При этом в коде 404, первая цифра 4, указывает ошибку на клиентской стороне, то есть программного обеспечения пользователя (к примеру, в браузере указан не верный адрес страницы). Так же данная цифра, как бы формирует группу ошибок 4х.х. Вторая цифра 0, указывает на общую ошибку синтаксиса для протокола HTTP. И наконец, последняя – 4, конкретно указывает, на то, что ресурс не найден.

    Поэтому, мы как разработчики, должны понимать, что данная ошибка может возникнуть, а значит, ее нужно как то обрабатывать. Вы можете спросить, как же обработать данную ошибку, если она возвращается в виде кода статуса запроса? И это действительно так, но если мы работаем с Joomla, мы должны знать, что абсолютно все запросы, на отображение страниц или выполнение каких либо действий, сводятся к единой точке входа в CMS, и это файл index.php. Данная точка входа, практически всегда доступна (сейчас мы не говорим о случаях когда его нет, так как это уже проблемы с целостностью самой CMS), а значит в соответствии с запросом пользователя, именно она решает, какой элемент CMS должен выполнить поставленную задачу. Таким образом, если запрашиваемый ресурс, не может быть найден, CMS самостоятельно формирует, вышеуказанную ошибку, то есть в качестве ответа на поставленный запрос, возвращается специальная страница Joomla, указывающая, что ресурс не найден и в качестве заголовка отправляется код статуса запроса 404 Not Found.

    Как сделать 404 страницу Joomla 3

    Теперь давайте поговорим о том, как сделать 404 страницу Joomla 3. Как я говорил Выше данная страница формируется непосредственно движком, а значит дизайн и оформление формируется в шаблоне. То есть если мы перейдем в каталог templates исходников Joomla, а затем в папку активного шаблона, в моем случае это beez3, мы увидим файл error.php, который как раз и отвечает за вывод содержимого страницы 404. Кстати по умолчанию, данная страница выглядит следующим образом!

    Хотите узнать, что необходимо для создания сайта?

    Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

    Смотреть видео

    Таким образом, если Вам необходимо изменить дизайн данной страницы, нужно править код файла error.php. При этом текстовое содержимое, которое Вы видите на странице 404, отображается из текущей локализации Joomla, то есть в коде файла Вы можете увидеть языковые константы, к примеру JERROR_LAYOUT_PAGE_NOT_FOUND, значения которых описаны в файлах “словарях” соответствующей локализации. Для шаблона Beez3, значения языковых констант, используемых на странице 404, содержатся в файле en-GB.ini, который располагается по адресу languageen-GB (то есть для английской локализации). Соответственно Вы можете, в файле error.php, изменить структуру HTML разметки, подключить собственные стили, изменить содержимое языковых констант, или вообще их не используя, прописать необходимый текст, страницы 404 – то есть абсолютно все, что Вам нужно.

    Так же для создания собственной страницы 404, Вы можете использовать произвольный материал, на который впоследствии в файле error.php, организуете простое перенаправление. Поэтому давайте создадим необходимую статью в менеджере материалов Joomla.

    При этом в параметрах публикации, я отключил показ вспомогательной информации по материалу, а именно имя категории, имя автора, дата добавления и т.д.

    Теперь давайте посмотрим, как настроить перенаправление на страницу 404 joomla 3. Для этого в файл error.php добавим следующий код (заменим его код).

    Хотите узнать, что необходимо для создания сайта?

    Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

    Смотреть видео

    <?php

    defined(‘_JEXEC’) or die;

    header(«Location:».JRoute::_(‘index.php?option=com_content&amp;view=article&amp;id=8:404error&amp;catid=2’));

    Для использования кода, необходимо знать идентификатор и псевдоним созданного материала, а так же идентификатор категории, к которой привязан используемый материал (даные параметры можно узнать в соответствующих менеджерах). Обратите внимание, что метод _(), класса JRoute, формирует человеко-понятную ссылку из обычного URL. Синтаксис используемого URL следующий.

    ‘index.php?option=com_content&amp;view=article&amp;id=идентификатор материала:псевдоним материала&amp;catid=идентификатор категории’

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

    Хотел бы отметить, что используя расширение sh404sef joomla 3, Вы можете создать собственную страницу 404, без правок файла error.php, так как данная возможность предусмотрена функционалом. То есть, установив вышеуказанный компонент, необходимо перейти в настройки и включить оптимизацию ссылок.

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

    После сохранения изменений, вышеуказанная страница будет выглядеть следующим образом.

    Более подробно работа с ссылками и механизмом формирования ЧПУ, показана в курсе Joomla-Профессионал: создание расширений для Joomla. Вот и все о чем я хотел рассказать в данной статье. Всего Вам доброго и удачного кодирования!!!

    Хотите узнать, что необходимо для создания сайта?

    Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

    Смотреть видео

    Хотите узнать, что необходимо для создания сайта?

    Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

    Смотреть видео

    Кот с проводом монитора в зубах.

    Хотите узнать, что необходимо для создания сайта?

    Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

    Смотреть видео

    Кот с проводом монитора в зубах.Привет всем, мои дорогие читатели блога. Снова вещает ваш друг и соратник Галиулин Руслан. Сегодня поговорим о проблеме, с которой сталкивался не один вебмастер при настройке своего сайта, я имею ввиду страницу 404. Основное назначение данной страницы это выдача специального ответа пользователю который перешел на сайт по неправильной ссылке или же страница ранее была на сайте, но в данный момент либо удалена или поменяла свой url.

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

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

    Содержание

    1. Что означает ошибка 404 “страница не найдена”?
    2. Как настроить ошибку 404 для joomla 3 ручным способом?
    3. Полезные фишки страницы ошибок на Джумла 3

    Суть работы браузеров заключается в выдачи пользователям искомых страниц среди сайтов попавших в поисковую выдачу. Если пользователь кликнул на ссылку , происходит запрос на сервер, где расположен сам сайт для подтверждения. Если все отлично то сервер отправляет код 200 (означает, что все отлично), а если же страница не найдена, то выдается ошибка.

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

    Как настроить ошибку 404 для joomla 3 ручным способом?

    Я не раз сталкивался с данной проблемой и приходилось прибегать к помощи сторонних специалистов, но в один прекрасный день решил покопаться в файлах сайта и посмотреть как же выводится данная страница. Я предпочитаю делать свои проекты на движке Джумла, так как она более функциональна, поэтому покажу на ее примере. Я решил искать в корне своего сайта файл, который отвечает за обработку ошибок и называется он error.php. Файлы с расширение .phpв основном используются в формах обратных связей и для обработки системных данных.

    Тут необходимо быть внимательным так как бывает что данный файл находится как в шаблоне сайта так и в системных папках. А теперь я покажу самый действенный и надежный способ как сделать страницу 404 для Джумла 3.

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

    Панда на фоне страницы с ошибкой.

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

    Следующим шагом мы создаем новое меню (менеджер меню), где нам необходимо задать наш короткий алиас страницы (я выбрал  error404), так как по умолчанию он ужасно длинный, чего поисковики не любят. Как говорится: “Все гениальное – просто”. Вот и нам не стоит изобретать паровоз и делаем все один раз и навсегда. Создав меню, прописываем алиас и привязываем нашу страницу с картинкой.

    Привязка страницы в меню Джумла.

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

    public_html/templates/ваш-шаблон/   

    Системный файл на сайте.

    Тут нас интересует файл с названием error.php. Открываем через блокнот или же встроенный в панель хостинга редактор. Полностью удаляем все содержимое файла и вставляем следующий код:

    <!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; ?>”>

    <head>

    </head>

    <body>

    <?php

    if  ($this->_error->get(‘code’) == ‘404’) {

    header(“HTTP/1.0 404 Not Found”);

    header(‘Location: /error404.html’);

    exit;

    }

    ?>

    </body>

    </html>

    Обратите внимание, что нам необходимо поменять адрес страницы ошибки на свой, у меня ссылка на страницу идет в этой строке:  Location: /error404.html.

    Сохраняем и копируем наш файл еще в одну папку с заменой старого по следующему пути:

    .../templates/ваш-шаблон/system/error.php   

    Теперь если вce сделано правильно, то после добавления любого набора слов или адреса левой страницы к нашему домену должна появляться надпись ошибки “страница не найдена”.  У меня на блоге она выглядит вот так:

    Ненайденная страница картинка.

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

    Также можно настроить данную страницу используя плагин ARTIO JoomSEF. Тут нам понадобится наша картинка.

    Заходим в установленный компонент в его раздел Configuration – 404 Page, где в текстовом редакторе добавляем нашу картинку как показано ниже:

    Настройка страницы ошибок в артио.

    Полезные фишки страницы ошибок на Джумла 3

    Ну вот мы и создали нашу страницу, а Вы не думали, что ее тоже можно использовать в пользу своего сайта. Тут мы можем сделать следующие вещи:

    • прикрутить полезные модули с ссылками на категории или полезные материалы сайта (раз страница не найдена то можете почитать похожие -)))), делается все с помощью вставки тегов в материал страницы из встроенного плагина “загрузка модулей” ;
    • в качестве поощрения пользователей  интернет-магазина можно выложить купон на скидку, который клиент может распечатать и за полученное неудобство получить скидку в магазине;
    • можете разместить рекламу или полезную информацию.

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

    С уважением, Галиулин Руслан.

    Понравилась статья? Поделить с друзьями:
  1. Java ошибка когда я удаляю
  2. Ivms 4200 framework c exe системная ошибка
  3. Itunes ошибка 4005 при восстановлении
  4. Isdone dll произошла ошибка не совпадает контрольная сумма
  5. Isdone dll вернул код ошибки 12 failed crc check