Введите поисковый запрос

Подключаем единую страницу 404 ошибки для всего сайта в 1С-Битрикс

Как подключить 404 страницу в 1С-Битрикс. Подключаем единый шаблон

В 1С-Битрикс на страницу с 404 ошибкой можно попасть только тогда, когда не найден физический раздел сайта, то есть папка. Если же вы не так указали адрес динамического раздела каталога, например, или карточки товара, то вы просто получите красные надписи "Раздел не найден" и "Элемент не найден".

Но что делать, если необходимо любой 404 ответ обрабатывать в едином стиле? На помощь нам приходят нехитрые инструкции, которыми мы и воспользуемся.

Все манипуляции мы будем совершать в файле init.php, который расположен по адресу /bitrix/php_interface/. Если по данному пути у вас нет такого файла, то придется его создать.

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

Страница 404 в стиле сайта

Начнем с первого варианта. Для этого откроем init.php и запишем туда следующий код:

 
AddEventHandler("main", "OnEpilog", "My404PageInSiteStyle");
function My404PageInSiteStyle()
{
    if(defined('ERROR_404') && ERROR_404 == 'Y')
    {
        global $APPLICATION;
        $APPLICATION->RestartBuffer();
        include $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
        include $_SERVER['DOCUMENT_ROOT'].'/404.php';
        include $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
    }
}

Итак, что же делает код выше. Во первых, мы повесили обработчик на событие OnEpilog, то есть на тот момент, когда страница уже будет обработана и скомпонована. В нем мы указали название нашей функции My404PageInSiteStyle, которая будет отвечать за вывод текста 404 ошибки.

Далее мы переходим непосредственно к нашей функции. Что же там происходит. Сначала мы проверяем, была ли определена константа, которая указывает на то, что запрашиваемое содержимое не найдено - ERROR_404. Если такая константа имеется, то мы делаем следующее:

  • Перезапускаем буфер, чтобы полностью очистить текущую компоновку и сформировать новую;
  • Подключаем header.php нашего шаблона;
  • Подключаем файл 404.php в котором хранится некий наш контент, - будь то текст или картинка, - который оповестит пользователя, что такой страницы нет;
  • Подключаем footer.php нашего шаблона;

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

Страница 404 с индивидуальным дизайном

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

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

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

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

Чтобы посетителю конкретно указать, что он попал на несуществующую страницу, ее и стараются выделить каким-то индивидуальным дизайном, чтобы "встряхнуть" посетителя и дать понять, что он забрел куда-то не туда.

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


 
AddEventHandler("main", "OnEpilog", "My404PageInMyOwnStyle");
function My404PageInMyOwnStyle()
{
    if(defined('ERROR_404') && ERROR_404 == 'Y')
    {
        global $APPLICATION;
        $APPLICATION->RestartBuffer();
        include $_SERVER['DOCUMENT_ROOT'].'/404.php';
    }
}


Как видите, все очень просто. Мы всего лишь убрали подключение header.php и footer.php, тем самым шаблон нашего сайта не будет грузиться. А загрузится только содержимое файла 404.php.

Правила оформления файла 404.php в 1С-Битрикс

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

Самое важное здесь - это установить статус 404 ошибки, иначе страница вам будет выдаваться с кодом ответа 200 ОК, что есть совсем нехорошо.

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


 
<?
    require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php";
    include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');
    CHTTP::SetStatus("404 Not Found");
    @define("ERROR_404","Y");
?>


Что тут происходит:

  • Здесь мы подключаем файл prolog_before.php, чтобы, если понадобится, мы могли пользоваться различными переменными, константами и методами 1С-Битрикс. Например, подключить модуль информационных блоков и положить сюда компонент по выводу случайных элементов;
  • Далее мы подключаем файл urlrewrite.php, который будет обрабатывать наш урл;
  • После этого самое важное - мы устанавливаем статус и заголовок ответа 404 Not Found;
  • И на всякий случае еще раз определим константу 404 ошибки. А чтобы не было ошибок, поставим перед ней собачку;

После этого вы можете уже верстать 404 страницу как вам угодно. Вот вам небольшая "рыба" заготовка:


 
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Страница не найдена</title>
    <link rel="shortcut icon" href="<?=SITE_TEMPLATE_PATH?>/favicon.ico" />
    <style type="text/css">
        .container{
            width: 1170px;
            margin: 0 auto;
        }
    </style>
</head>
<body>
        <div class="container">
            <img src="/images/404.jpg"><br />
            <p>Ой ой ой! СТраница не найдена!</p>
        </div>
</body>
</html>

Ну вот, теперь вы легко сможете создавать в 1С-Битрикс любые страницы 404 ошибки, какие только захотите.

Успехов вам!




Стоимость разработки сайта

Я не оцениваю работу в часах, так как в итоге, Вы все равно захотите узнать общую стоимость и срок выполнения.

При оценке проекта или работ я сразу называю стоимость и срок выполнения. Стоимость моих работ не обсуждается. Я называю реальную стоимость за которую готов взяться за ваш проект. Не торгуюсь и не объясняю "а почему это стоит столько?"
Денис Бунаков

Узнать точную стоимость разработки сайта или приложения: Для этого я могу попросить Вас заполнить какой нибудь бриф, но зачем Вам это надо?:

Оставить заявку

И мы все спокойно обсудим либо по телефону, либо удобным для Вас способом например в месенджере

Часто задаваемые вопросы

  • На какой CMS создаете сайты в Новосибирске?
    Обычно мы используем для работы CMS-систему «1С-Битрикс» т.к это наиболее надежная и удобная CMS. Так же она достаточно гибка для разработки на котором можно от обычных сайтов визиток до полноценный масштабных порталов и даже маркетплейсов
  • Какие гарантии есть на создание сайта в Новосибирске?
    Я предлагаю гарантию на исправление ошибок и техническую поддержку в течение 12 месяцев (1 года) после запуска сайта. Это включает в себя устранение багов и обеспечение корректной работы всех функций. Я также гарантируем соблюдение сроков и качества выполнения работ. Я на столько уверен в качестве своих работ, что готов давать такую большую гарантию
  • Можно ли в дальнейшем менять самостоятельно информацию или только с помощью вас?
    Да, вы сможете самостоятельно изменять информацию на сайте, либо загружать их в электронном виде пакетными методами. Предоставляем подробные инструкции и обучающие материалы как всем пользоваться, чтобы вы могли легко управлять контентом. Однако, если у вас возникнут сложности или потребуется помощь, наша команда всегда готова помочь.
  • Вы оказываете услуги по созданию сайта и технической поддержки по договору ?
    Да, мы работаем только по договору как с юридическими, так и с физическими лицами. Вся необходимая бухгалтерская отчетность предоставляется своевременно.
  • Можно ли перенести уже существующий сайт на платформу 1С-Битрикс?
    Да, перенос сайта на другую платформу возможен, но это сложный процесс, который требует внимательной подготовки. Важно сохранить все данные (контент, изображения, SEO-настройки) и перенести функционал без потерь. Процесс может включать переписывание части кода и настройку новой платформы. Это особенно актуально, если текущая платформа не поддерживает новые функции или технологии. В моем портфолио есть сайт CибНИА имени С. А. Чаплыгина который как раз я полностью перенес на систему 1С битрикс с сохранением всего функционала
  • Чем отличается разработка сайта на шаблоне от индивидуального проекта?
    Сайт на шаблоне создается на основе готового дизайна, что снижает стоимость и ускоряет процесс разработки. Любой шаблон можно кастомизировать под себя НО! Иногда кастомизация может выйти дороже чем индивидуальная разработка. Дополнительно, в шаблонном решение может не быть нужного функционала. Индивидуальный проект создается с нуля по уникальному дизайну и потребностям клиента, что позволяет гибко настраивать функционал, но требует больше времени и ресурсов.
  • Следите ли вы за скоростью загрузки сайта?
    Да на всех этапах скорость загрузки сайта, чистота и оптимизация кода проходят тестирование и правки при ошибках, если хотите, то вы можете принимать активное участие на всех этапах.
  • Какая стоимость разработки сайта в Новосибирске и Москве?
    Стоимость создания и разработки сайта варьируется в зависимости от его сложности и функциональности. Например, базовый вариант может стоить от 100 000 рублей, в то время как более сложные проекты, например сайты интернет-магазинов или корпоративные порталы, могут стоить от 550 000 рублей и выше. Я готов обсудить требования и предложить оптимальное решение, соответствующее вашему бюджету. От региона присутствия сайта стоимость моих работ не меняется. Я не считаю что стоимость сайта в Москве должна превышать стоимость сайта в Новосибирске
  • Как будет работать мой сайт на мобильном телефоне?
    Я разрабатываю сайты с учетом адаптивного дизайна, что обеспечивает их корректное отображение и функциональность на всех устройствах, включая мобильные телефоны и планшеты. Это означает, что сайт будет автоматически подстраиваться под размер экрана, обеспечивая удобство использования и быстрое время загрузки на мобильных устройствах. Мои сайты отличаются доступным и привлекательным юзабилити, которые работают корректно и максимально профессионально увеличивают вашу прибыль.
  • Сколько времени уходит на создание сайта под ключ?
    Сроки разработки интернет-ресурса зависят от сложности проекта, в среднем, создание нового сайта занимает от 4 до 15 недель. Более сложные сайты могут потребовать больше времени. Но бывают проекты которые занимают до 1 года на разработку. Все очень индивидуально и примерные сроки я смогу озвучить после знакомства с Вами