Меню

bitrix настройка 404 ошибки

Не работает 404 ошибка в 1с битрикс. Правильная настройка

В битриксе 404 ошибка отрабатывается весьма специфически — неправильный адрес со статических страниц и разделов корректно перебрасывает на страницу 404.php, при этом сохраняя неправильный URL в адресной строке браузера. То есть все по seo.

А вот если неправильный адрес начинается с раздела инфоблока или каталога, то сервер отдаст браузеру 404 статус страницы (и то при определенных настройках инфоблока, о которых ниже), но 404 страницу не покажет, а покажет корневую страницу инфоблока, причем иногда совсем другого инфоблока. Но все-таки сохранит неправильный URL в адресной строке.

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

Ставим задачу:

  1. Нужно, чтобы инфоблоки и каталоги в случае неправильной ссылки отдавали 404 статус
  2. Нужно, чтобы этот статус правильно обрабатывался и приводил к вызову страницы 404.php

На что стоит обратить внимание:

1. Файл 404.php — лежит в корне сайта. Должен выглядеть вот так (тут все стандартно):

2. В .htaccess должна быть вот такая строчка:

Если у вас сервер на nginx, то нужно прописать в конфиге, в секции location, следующее:

тех. отступление:

Попробуем сэмулировать 404 ошибку с какой-нибудь статической страницы и отловить результат через команду debug_print_backtrace ( ) ;

Смотрим файл — видим там строку с инклюдом 404 страницы. Она вызывается, очевидно, в том случае, если страница не найдена в структуре файлов и папок, а также в файле urlrewrite.php в корне сайта, где как раз описаны все наши инфоблоки и каталоги (для правильной работы ЧПУ).

Первая поставленная нами задача выполняется настройкой инфоблоков и компонентов:

3. Проверим настройки самих каталогов:

URL страницы ИБ — должен указывать на папку, из которой будет осуществляться вызов инфоблока.

URL страницы раздела — если структура инфоблока будет иметь подразделы, то ссылка должна строиться на основе символьного кода раздела.

URL страницы детального просмотра — если элемент находится в подразделе, то к ссылке будет прибавляться символьный код раздела перед символьным кодом элемента. Иначе — только символьный код элемента.

4. И инфоблоков:

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

5. Проверяем настройки вызова инфоблоков:

Обязательно проверяем, что отмечена галка «Включить поддержку ЧПУ»!

Каталог ЧПУ — корневая папка инфоблока

Раздел — #SECTION_CODE#/ — повторяем из настроек инфоблока, но не ставим слеш в начале, иначе компонент будет работать не верно

Детальная информация — #SECTION_CODE#/#ELEMENT_CODE#/ — ссылка формируется на основе символьного кода раздела (если есть) и кода элемента. Опять же, слеш в начале не ставим!

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

Читайте также:  настройка роутера f660 прошивка

То есть поле для страницы раздела вообще можем пропустить , для страницы элемента: #ELEMENT_CODE#/ . Не забываем пропустить слеш в начале!

6. Отмечаем галочку там же в настройках: «Устанавливать статус 404, если не найдены элемент или раздел:».

тех. отступление:

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

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

7. Добавим следующий код в файл /bitrix/php_interface/init.php:

С этого момента страница ошибок будет работать! (наверно))) Если нет, опишите вашу ситуацию в комментариях

UPD от 29.08.15: чуть обновил код файла 404.php и сниппет для init.php

UPD от 15.01.18: настраивал сегодня на одном проекте отладку 404-й ошибки по данной инструкции. Все работает отлично)) Версия битрикса — последняя на указанную дату

Роман Моренец

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

Конвертируем гостей и анонимов в честных пользователей wordpress

источник

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:

Читайте также:  motioninjoy ds3 tool настройка

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 ошибку .

источник

Bitrix настройка 404 ошибки

Курс предназначен для базовой подготовки администраторов сайтов, созданных на «1С-Битрикс: Управление сайтом». Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер.

Читайте также:  delonghi magnifica сброс настроек

Если вы добросовестно изучите курс, то научитесь:

  • управлять доступом к системе, сайтами, пользователями, группами пользователей;
  • работать с инструментами системы;
  • использовать возможности интерфейса по управлению системой;
  • работать с модулями «1С-Битрикс: Управление сайтом», связанными с оптимизацией и безопасностью работы сайта;
  • выполнять работу по конфигурированию веб-системы для оптимальной работы.

Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих «1С-Битрикс: Управление сайтом» или «Битрикс24 в коробке».

Начальные требования

Необходимый минимум знаний для изучения курса:

  • базовые навыки компьютерной грамотности и навыков работы с ОС Windows;
  • базовые знания о WWW и организации доступа к веб-серверу;
  • знание системы в рамках курса Контент-менеджер Мы считаем, что вы этот курс уже прошли и знаете многое о Битриксе. Поэтому подсказок во всплывающих окнах будет намного меньше, чем в курсе Контент-менеджер. , чтобы банально не путаться в интерфейсе.

Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.

Тесты и сертификат

После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение вы увидите результат обучения и там же — ваш сертификат в формате PDF.

Иконка успешно сданного вами курса отображается в вашем профиле на Freelance, если вы укажите ссылку на ваш профиль на сайте компании 1С-Битрикс.

Комментарии к урокам

На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий — не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой:

Для преподавания оффлайн

Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).

Если нет интернета

Экономите время и учитесь по дороге на работу или в ВУЗ? Для этого нужны файлы. Мы предоставляем две возможности оффлайнового изучения: файлы в формате PDF и CHM, они открываются на любых устройствах. Программы для чтения доступны в AppStore и Play Market. Файлы обновляются периодически, но всё равно будут отставать от онлайновой версии курса. Поэтому, всё же, мы рекомендуем он-лайн версию курсов, тем более, что мобильный интернет сейчас не проблема.

Чтобы отключить подобное отношение к файлу необходимо:

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

Отсутствие кнопки Разблокировать возможно в двух случаях:

  1. Файл лежит не локально, а на сетевом ресурсе.
  2. Если файл лежит на локальном диске, но путь к нему содержит спецсимволы (# и прочие).

Как проходить учебный курс?

источник

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

Adblock
detector