Меню

bitrix настройка 404 в каталоге

1С-Битрикс — правильная настройка страницы 404

Даже с такой простой функцией сайта, как отображать 404 страницу возникает множество сложностей. В интернете все советует решать эту проблему добавлением событий в файл init.php, прописывать в nginx:

но все эти пути решения неверные, чтобы все правильно работало не нужно что-то специально добавлять. Давайте попробуем с этим разобраться основательно.

404 страница при отсутствующей странице

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

  1. В корне сайта нет файла 404.php, добавляем:

Конечно ваша верстка может отличаться, как и содержимое этой страницы, важно чтобы в этом файл присутствовали следующие строчки:

  1. Смотрим какая страница отображается вместо 404 страницы, этот вариант почему-то все упускают и начинают городить функции с событиями или редактировать конфиг веб-сервера. Если отображается например страница со списком новостей, то значит в вашем файле urlrewrite.php есть неверная CONDITION**, например она будет выглядеть вот так:

Такое просиходит потому, что при настройке компонента bitrix:news на странице /news/index.php было указано вот так:

Делаем пересоздание правил обработки адресов на странице _/bitrix/admin/urlrewritereindex.php и страница с ошибкой заработает.

Других ситуаций в принципе возникнуть не может, в nginx если вы используете BitrixVM или например конфиг из нашей другой статьи 1С-Битрикс + Nginx + php-fpm + композитный сайт, ничего менять не надо. Если сами писали конфиг для nginx, то за появление ошибки отвечают опции:

для apache это строки файла .htaccess:

для windows server правило для 404 ошибки находится в строчках файла web.config:

404 страница при отсутствующем элементе инфоблока

Тут все еще проще. У компонентов есть опции:

они и должны быть включены, то есть иметь значение Y или стоять галка, если вы настраиваете в редакторе компонента.

Код ответа сервера 200

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

источник

1С-Битрикс — правильная настройка страницы 404

Даже с такой простой функцией сайта, как отображать 404 страницу возникает множество сложностей. В интернете все советует решать эту проблему добавлением событий в файл init.php , прописывать в nginx:

но все эти пути решения неверные, чтобы все правильно работало не нужно что-то специально добавлять. Давайте попробуем с этим разобраться основательно.

404 страница при отсутствующей странице

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

  • В корне сайта нет файла 404.php , добавляем:

include_once ($_SERVER[‘DOCUMENT_ROOT’] . ‘/bitrix/modules/main/include/urlrewrite.php’);
CHTTP::SetStatus(«404 Not Found»);
@define(«ERROR_404», «Y»);

require ($_SERVER[«DOCUMENT_ROOT»] . «/bitrix/header.php»);

Читайте также:  как изменить настройки языка в яндекс

$APPLICATION->SetTitle(«Страница не найдена»);
$APPLICATION->SetPageProperty(«keywords», «Страница не найдена»);
$APPLICATION->SetPageProperty(«description», «Страница не найдена»);
?>

Конечно ваша верстка может отличаться, как и содержимое этой страницы, важно чтобы в этом файл присутствовали следующие строчки:

  • Смотрим какая страница отображается вместо 404 страницы , этот вариант почему-то все упускают и начинают городить функции с событиями или редактировать конфиг веб-сервера. Если отображается например страница со списком новостей, то значит в вашем файле urlrewrite.php есть неверная CONDITION**, например она будет выглядеть вот так:

Такое просиходит потому, что при настройке компонента bitrix:news на странице /news/index.php было указано вот так:

Делаем пересоздание правил обработки адресов на странице _/bitrix/admin/urlrewrite reindex.php и страница с ошибкой заработает.

Других ситуаций в принципе возникнуть не может, в nginx если вы используете BitrixVM или например конфиг из нашей другой статьи 1С-Битрикс + Nginx + php-fpm + композитный сайт , ничего менять не надо. Если сами писали конфиг для nginx, то за появление ошибки отвечают опции:

error_page 404 405 412 502 504 = @bitrix;

для apache это строки файла .htaccess :

для windows server правило для 404 ошибки находится в строчках файла web.config :

httpErrors >
remove statusCode=»404″ subStatusCode=»-1″/>
error statusCode=»404″ path=»/404.php» responseMode=»ExecuteURL»/>
httpErrors >

404 страница при отсутствующем элементе инфоблока

Тут все еще проще. У компонентов есть опции:

«SET_STATUS_404» => «Y», // Устанавливать статус 404
«SHOW_404» => «Y», // Показ специальной страницы

они и должны быть включены, то есть иметь значение Y или стоять галка, если вы настраиваете в редакторе компонента.

Код ответа сервера 200

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

источник

Настройка 404 в битриксе?

Сайт на битриксе. Проблема в следующем: 404 страница показывается только на страницах вида: site.ru/abrakadabra
А на site.ru/catalog/abrakadabra вместо 404 показывает содержимое site.ru/catalog, хотя в ChromeDevTools в заголовке 404-ая.
В корне лежит файл 404.php верно настроенный, пробовал добавить в init.php

В общем и целом, проверка (defined(‘ERROR_404’) && ERROR_404 == ‘Y’) не позволяет отловить возникновение 404 ошибки в обработчике. Я писал по этому поводу в техподдержку, они передали мой тикет в разработку. Это было в октябре. Пока они слоупочат, вы можете перенести проблемный компонент в свое пространство имен, найти, где в нем вызывается CHTTP::SetStatus и добавить после него нужную строку:

Читайте также:  каждый раз запускается настройка microsoft office

Либо, вы можете сравнить $arResult, который передается в шаблон при заходе на /catalog/ и при заходе на /catalog/abrakadabra, и найти такое условие, которое позволило бы определять, что возникла ошибка. По-моему, там есть что-то с TEMPLATE_NAME. Тогда добавите в index.php в шаблоне примерно следующее:

Либо, если вы не хотите этого делать, вы можете модифицировать сам метод CHTTP::SetStatus, как-то так:

Но это не приветствуется битриксом, и будет слетать при каждом обновлении.

источник

Страница 404 битрикс. Пример настройки и оформления 404 на битрикс.

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

Опишу список вопросов, которые будут обозначены в этой статье:

  1. Страница 404 битрикс. Как настроить?
  2. Пример оформления 404 на битрикс.
  3. Вопрос о том, что 404 страница отдает код 200.
  4. Подводные камни при настройке 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 ошибки. Это наверняка будет компонент который будет лежать в своем пространстве имен. Больше сказать ничего не могу, только прокачивать!

Читайте также:  vmware vsphere web client настройка

P.S.: Любую задачу можно выполнить, важно уделить её достаточно времени.

На этом все, теперь в bitrix 404 страница настроена и должна работать корректно, если возникнут вопросы или пожелания, рассмотреть реализацию какой-либо задачи — пишите в комментарии, разберем её выполнение в ближайшее время! Всем удачи и успехов в работе!

источник

Bitrix настройка 404 в каталоге

Используя даже такой простой функции для сайта, как отображать 404 страницу возникает множество сложностей. В интернете все советует решать эту проблему добавлением событий в файл init.php, прописывать в nginx:

Но все эти пути решения неверные, чтобы все правильно работало не нужно что-то специально добавлять. Давайте попробуем с этим разобраться основательно.

404 страница при отсутствующей странице

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

1. В корне сайта нет файла 404.php, добавляем:

Конечно ваша верстка может отличаться, как и содержимое этой страницы, важно чтобы в этом файл присутствовали следующие строчки:

Смотрим какая страница отображается вместо 404 страницы, этот вариант почему-то все упускают и начинают городить функции с событиями или редактировать конфиг веб-сервера. Если отображается например страница со списком новостей, то значит в вашем файле urlrewrite.php есть неверная CONDITION**, например она будет выглядеть вот так:

Такое просиходит потому, что при настройке компонента bitrix:news на странице /news/index.php было указано вот так:

Делаем пересоздание правил обработки адресов на странице _/bitrix/admin/urlrewritereindex.php и страница с ошибкой заработает.

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

для apache это строки файла .htaccess:

для windows server правило для 404 ошибки находится в строчках файла web.config:

404 страница при отсутствующем элементе инфоблока

Тут все еще проще. У компонентов есть опции:

Они и должны быть включены, то есть иметь значение Y или стоять галка, если вы настраиваете в редакторе компонента.

Код ответа сервера 200

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

источник

Добавить комментарий

Adblock
detector