- Страница 404 битрикс. Пример настройки и оформления 404 на битрикс.
- Страница 404 битрикс. Как настроить?
- Пример оформления 404 на битрикс:
- Вопрос о том, что 404 страница отдает код 200.
- Подводные камни при настройке 404 страницы в битрикс:
- Настраиваем страницу 404-й ошибки в Битриксе
- Введение
- Создаем страницу /404.php
- Проверяем наличие директивы в .htaccess
- Проверяем настройки главного модуля
- Настраиваем компоненты
- Проверяем результат работы
- 404 страница в комплексном компоненте 1С Битрикс
- Проверка сайта и настройка 404-й страницы
- Ошибка элемент/раздел не найден
- Оформляем 404-ю страницу
- Bitrix и ошибка 404
Страница 404 битрикс. Пример настройки и оформления 404 на битрикс.
Страница 404 ошибки имеет важную роль как для пользователей, так и для поисковых систем.
Опишу список вопросов, которые будут обозначены в этой статье:
- Страница 404 битрикс. Как настроить?
- Пример оформления 404 на битрикс.
- Вопрос о том, что 404 страница отдает код 200.
- Подводные камни при настройке 404 страницы.
Итак пойдем по порядку!
Страница 404 битрикс. Как настроить?
Обычно, в битрикс страница 404 настраивается в пару кликов, красивый внешний вид достигается копированием заготовки html кода для 404 страницы. Пойдем по порядку и тут.
Рассмотри настройку статуса 404 на примере комплексного компонента каталога. Для выполнения задачи нужно вызвать настройки компонента, в самом низу настроек будет блок с настройками 404 ошибки, в нем необходимые параметры:
- Устанавливать статус 404
- Показ специальной страницы
Эти параметры должны быть установлены по умолчанию при разработке или seo оптимизации сайтов на битриксе.
После установки этих параметров, необходимо сохранить настройки компонента, и проверить результат в разных вариациях (добавление к существующему url дополнительных букв, цифр в разных местах). Если все удачно и отдается страница со статусом 404, необходимо её оформить.
В битрикс страница 404 размещается в корне сайта в файле 404.php.
Пример оформления 404 на битрикс:
С кодом выше и с базовыми настройками 404, я думаю все понятно, продолжим.
Вопрос о том, что 404 страница отдает код 200.
Если 404 страница отдает код 200, идем в настройки главного модуля и проверяем наличие галочки у пункта «Посылать в заголовке статус 200 на 404 ошибку». Он должен быть отключен!
После этого страница должна отдавать статус 404.
Подводные камни при настройке 404 страницы в битрикс:
Бывает, что 404 страницу необходимо настроить на каком-нибудь готовом решении. Тут необходимо рассматривать каждый конкретный случай индивидуально. Возможно поможет вставка в init.php кода:
Возможно поможет этот код, нужно пробовать и прокачивать:
Если нечего не помогло, поздравляю вас! Необходимо лезть внутрь компонента, с помощью которого сделан ваш каталог, или статейный раздел и искать там место, где вставить обработку 404 ошибки. Это наверняка будет компонент который будет лежать в своем пространстве имен. Больше сказать ничего не могу, только прокачивать!
P.S.: Любую задачу можно выполнить, важно уделить её достаточно времени.
На этом все, теперь в bitrix 404 страница настроена и должна работать корректно, если возникнут вопросы или пожелания, рассмотреть реализацию какой-либо задачи — пишите в комментарии, разберем её выполнение в ближайшее время! Всем удачи и успехов в работе!
Источник
Настраиваем страницу 404-й ошибки в Битриксе
Введение
Страница 404-й ошибки должна загружаться в том случае, если человек попытался открыть несуществующую страницу. Увидев сообщение «Страница не найдена» пользователь поймет, что ошибся при вводе адреса, либо перешел по нерабочей ссылке.
Но по нерабочей ссылке может перейти не только человек, но и робот поисковой системы. Поэтому, кроме текстового сообщения об ошибке, страница должна отдавать HTTP-код 404 – так поисковики понимают, что они попытались попасть на несуществующую страницу. Разберемся, как создать страницу 404-й ошибки на сайте, который работает на системе управления 1С-Битрикс.
Создаем страницу /404.php
Для начала создаем в корне сайта файл 404.php со следующим кодом:
Если в корне сайта этот файл уже существует, проверяем, чтобы в самом начале были эти три строчки, они важны, если их нет – добавляем:
Если интересно разобраться — отдельно рассмотрим каждую строчку нашего файла:
— подключаем систему обработки адресов Битрикса, чтобы корректно обрабатывать адреса динамических разделов (статей, новостей, каталогов).
— устанавливаем HTTP-статус 404, благодаря этим строчкам поисковики поймут, что запрашиваемой страницы не существует.
— подключаем шапку сайта.
— отключаем отображение цепочки навигации (хлебных крошек) на этой странице.
— устанавливаем h1 и title страницы.
— контент страницы, его можете отредактировать на своё усмотрение.
— подключаем подвал сайта.
Окей, страничку создали, идем дальше.
Проверяем наличие директивы в .htaccess
Открываем файл .htaccess в корне сайта, проверяем, что там есть такая строчка:
Эта строчка есть в .htaccess сайтов на Битриксе по-умолчанию, но всё-равно лучше проверить. Если ее нет – добавляем. Этим мы указываем, что созданный нами файл /404.php должен загружаться при попытке открыть несуществующую страницу.
Проверяем настройки главного модуля
В админке идем в настройки Главного модуля (Настройки => Настройки продукта => Настройки модулей => Главный модуль) и проверяем, чтобы опция Посылать в заголовке статус 200 на 404 ошибку была отключена:
По названию опции понятно: если галочка стоит – страница с 404-й ошибкой будет возвращать статус 200, а это нам ни к чему. Поэтому если галочка стоит – убираем её.
Настраиваем компоненты
В настройках всех компонентов, которые отвечают за страницы детального просмотра, нужно настроить режим обработки 404-й ошибки. Например, это могут быть компоненты «Новости», «Каталог», «Новость детально», «Элемент каталога детально» — одним словом все компоненты, которые генерируют страницы детального просмотра.
Тут без конкретного примера не обойтись, поэтому рассмотрим следующую ситуацию: на сайте есть раздел «Новости», страница детального просмотра новостей генерируется компонентом «Новость детально». Урлы новостей выглядят следующим образом /news/simvolnyj-kod-novosti/
Если мы перейдем в настройки данного компонента — в самом низу увидим блок Настройки 404 ошибки. По-умолчанию он выглядит вот так:
Т.е. обработка 404-й ошибки не настроена. Если мы попытаемся открыть страницу с несуществующей новостью, например /news/asdfgffj4/ — получим вот такое стандартное сообщение:
Сама страничка отдает HTTP-код 200. Так быть не должно, срочно исправляем! В настройках компонента отмечаем галочки Устанавливать статус 404 и Показ специальной страницы, поле Страница для показа не заполняем, т.к. по умолчанию это страница /404.php – т.е. то, что нам нужно. Блок настроек компонента теперь выглядит следующим образом:
Теперь при попытке открыть несуществующую новость получаем нашу страницу 404:
Проверяем результат работы
Мы всё настроили, остается проверить, отдает ли наш сайт код 404 для несуществующих страниц. Для таких целей можно использовать сервис яндекса https://webmaster.yandex.ru/tools/server-response/
Указываем ему любую несуществующую страницу нашего сайта и получаем ответ:
Если Код статуса HTTP равен 404 Not Found — поздравляю, вы всё сделали правильно. Теперь вы знаете, как настроить страницу-обработчик 404-й ошибки в Битриксе 🙂
Другие посты из этой же рубрики:
Copyright © 2015-2021, Алфавитка.ру – IT-блог разработчика.
Источник
404 страница в комплексном компоненте 1С Битрикс
Вы наверняка сталкивались с проблемой когда при обращении к несуществующему адресу в каталоге товаров или в разделе новости, вместо 404-й страницы получали ответ «не найден раздел или элемент» при этом серверу в заголовка отдавался статутс 200 ok а не 404 not found. Это не правильно, т.к. поисковик может проиндексировать пустые страницы которые впоследствии повысят количество отказов при заходе реальных посетителей на сайт. И так почему так происходит и как этого избежать.
В первую очередь нам нужно проверить наличие некоторых фалов и настроек на сайте.
Проверка сайта и настройка 404-й страницы
Во-первых проверим наличие файла 404.php который должен лежать в корне вашего сайта. Если его нет, можете его создать с таким содержимым:
Ключевыми в этом файле являются строки:
Возможно у вас есть сам файл, но отсутствуют эти строки, что и приводит к ошибке в работе 404-й.
Во-вторых, проверьте файл .htaccess (если он поддерживается вашим сервером), в нём должна присутствовать такая директива:
Теперь перейдите к настройкам вашего компонента (обычно это bitrix.catalog или bitrix.news), блоке «настройки 404 ошибки» отметьте галочку «Устанавливать статус 404» (название галочки может отличаться в компонентах, в некоторых она называется «Устанавливать статус 404, если не найдены элемент или раздел:»).
Затем в файл /bitrix/php_interface/init.php (или /local/php_interface/init.php) добавьте следующий код:
Этим кодом, мы добавляем в OnEpilog свой обработчик события, который считывает установленный компонентом параметр ERROR_404 и запускает перегрузку буфера подключая файл 404-й страницы. Обычно это 404.php лежащий в корне сайта. Хотя при соответствующем оформлении 404-й страницы, можно (даже будет лучше) не подключать файлы header.php и footer.php.
Если после всех манипуляций 404-я страница не отображается по несуществующему URL, следует проверить файл urlrewrite.php отвечающий за обработку ЧПУ адресов. Иногда, например при размещении компонента умного фильтhа (catalog.smart.filter) на главной странице, в urlrewrite.php прописывается условие, что-то вроде этого:
Обычно в CONDITION — создаётся некорректное регулярное выражение, которое срабатывает на все страницы, в том числе и на не существующие и вместо 404-й страницы, сайт выдаёт что-то ещё, обычно страницу или компонент указанный в PATH этого правила. Если такое правило есть, его необходимо скорректировать или удалить из urlrewrite.php.
Ошибка элемент/раздел не найден
Такая ошибка возникает когда шаблоны ЧПУ в инфоблоке и в настройках компонента не совпадают. Или же пользователь ввёл некорректный URL близкий к шаблону. Проверьте настройки инфоблока:
И настройки ЧПУ в компоненте (обычно комплексном):
Так же следует проверить соответствие шаблона и свойств элемента. Например в примере в шаблон URL детальной страницы входит символьный код элемента #ELEMENT_CODE#, если у элемента нет символьного кода, вы получите ошибку. Но правильнее конечно, не показывать такие сообщения (элемент не найден, раздел не найден), компонент должен установить статус 404 и должен сработать скрипт показывающий пользователю /404.php с соответствующим ответом в заголовке. В противном случае, могут быть проблемы с SEO сайта.
Оформляем 404-ю страницу
По умолчанию 404.php в 1С Битрикс содержит компонент карты сайта и выводит список ссылок взятый из файлов формирования меню. При этом на странице так же остаётся полноценная шапка и подвал сайта (отрабатывают header.php и footer.php шаблона), что на мой взгляд не правильно. Кстати сеошники из компании Кокос, с которыми мне приходилось сталкиваться, так же не рекомендовали выводить шапку и подвал с полноценной навигацией по сайту на 404-й странице.
На мой взгляд 404-я должна говорить пользователю что он всё ещё на том же сайте где и был секунду назад, отвечать на вопрос почему он здесь и что делать дальше и отдавать соответствующие заголовки поисковому роботу.
И так давайте выведем 404-ю страницу битрикс без шапки и подвала, но при этом подтянем ядро системы, чтобы мы могли подключить стили шаблона по средствам константы SITE_TEMPLATE_PATH. Убираем всё лишнее, подключаем ядро, получаем такой файл:
Чтобы посетитель не подумал что он покинул ваш сайт, стили оформления 404-й страницы должны быть такими же как и на всём сайте (заголовки, шрифты, цвета, иконки, картинки). Обязательно (минимально) на этой странице должен быть логотип.
Я люблю когда сообщения об ошибках читаются сразу, поэтому пишу их большими шрифтами, например Open Sans Condensed, не мельчите и объясняйте пользователю куда он попал и что ему дальше делать (вернуться на главную страницу, сделать запрос в форме поиска, в конце концов позвонить или написать вам). У меня получилась такая страничка:
Добавим немного CSS стилей для полноты картины:
Вроде бы всё. Ах да чуть не забыл! Нужно проверить всё ли правильно отдаётся поисковому роботу. Для этого перейдите на сайт, вызовете консоль разработчика (обычно клавиша F12 или пункт в меню инструментов браузера «инструменты разработчика» или что-то подобное), перейдите на вкладку Сеть/Network введите адрес несуществующей страницы и посмотрите какой ответ вернёт сервер (вкладка Status):
Как видите всё в порядке, сервер вернул 404-й заголовок, что означает — страница не существует, а следовательно поисковик не проиндексирует ненужные адреса и в поиск попадут только реально существующие документы вашего сайта. Теперь точно всё. Желаю удачи!
Источник
Bitrix и ошибка 404
Давно бились над проблемой с SEO и применением стандартных комплексных компонентов (bitrix:news, bitrix.catalog) при использовании ЧПУ.
Проблема заключалась вот в чем: при отдаче страницы с отсутствующим элементом или секцией инфоблока выставляется статус «404 Not Found» (в теле компонентов bitrix:news.list, bitrix:news.detail, bitrix:catalog.section, bitrix:catalog.element есть соответствующие строки, но к сожалению не было способа показать тело 404-ой страницы (мы обычно создаем страницу /404.php) с ее оформлением и пр.
Поначалу нас устраивал редирект на эту страницу вида:
но чтобы им воспользоваться приходилось создавать дубликаты компонентов в своем пространстве имен (anima:catalog.section, например).
Потом было найдено более изящное решение, не задевающее компоненты. В стандартных компонентах используется определение константы ERROR_404 в случае проблем с поиском инфоблока, секии, элемента во время выполнения компонента, но по заверениям разработчиков она используется исключительно для статистики. Однако, отображение стрницы – единый runtime и определенные константы можно использовать практически в самом его (runtime-a) конце. Результатом этих роазмышлений стал код в init.php:
Довольно легко для понимания и универсально и работает везде, но. У данной конструкции (у редиректа) естьи темные стороны.
- Пользователь сайта, случайно вбив ошибочный длинный URL перебрасывался на /404.php без возможности увидеть и исправить ошибку в строке адреса.
- Поисковой робот, придя на ошибочную страницу видел странную последовательность: при обращении к несуществующей странице он получал статус 301 Moved Permanently (в редких случаях «404 Not found»
и переадресацию на страницу /404.php, которая выставляла статус «404 Not found». Немного путано.
Тогда появилась идея: в функции Redirect404() очистить буфер вывода с помощью $APPLICATION->RestartBuffer(); и «заинклюдить» /404.php. Но тут на словах оказалось проще, чем на деле. Беда крылась в том, что пролог и эпилог сайта вызываются через конструкцию require_once и повторно вызвать их (для отображения шапки, футера, стилей на заветной 404-ой странице) оказалось невозможно; другими словами мы теряли, к примеру, меню, вставленное в визуальную часть пролога (header.php шаблона).
Путем экспериментов, проб и ошибок мы пришли к довольно универсальной записи:
Внимательный зритель заметит, что в функции появилась константа PATH_TO_404. Определять данную константу предлагается первой строкой в визуальной части пролога:
Источник