Налаштовуємо правильну відпрацювання 404 помилки у Бітрікс

Хоча навіть зробивши все за інструкцією, бажаного результату досягти не вдалося (((. Довелося розкинути мізками, і озброївшись командою print backtrace, відловити негодяйским 404 помилку і змусити її працювати як належить.

Власне, проблема:

На що варто звернути увагу:

1. сам файл 404.php у мене виглядає приблизно так (насправді стандартно виглядає):

тех. відступ:

Спробуємо семуліровать 404 помилку з якою-небудь статичної сторінки і відловити результат через команду debug_print_backtrace ();

Дивимося файл - бачимо там рядок з інклюд 404 сторінки. Вона викликається, очевидно, в тому випадку, якщо сторінка не знайдена в структурі файлів і папок, а також у файлі urlrewrite.php в корені сайту, де як раз описані всі наші Інфоблоки і каталоги (для правильної роботи ЧПУ).

  1. щоб Інфоблоки і каталоги в разі неправильної посилання віддавали 404 статус
  2. щоб цей статус правильно оброблявся і приводив до виклику сторінки 404.php

Перше завдання виконується настроюванням Інфоблоки і компонентів:

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

URL сторінки ІБ - відсилаємо на папку з якої буде здійснюватися виклик Інфоблоки

тобто, як ми бачимо, для Інфоблоки підрозділи можна не описувати.

5. перевіримо налаштування виклику Інфоблоки:

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

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

Розділ - # SECTION_CODE # / - повторюємо з налаштувань Інфоблоки, але не ставимо слеш на початку, інакше компонент буде працювати не вірно

Якщо передбачається, що всі елементи будуть розташовуватися в корені Інфоблоки, без підрозділів, то можна використовувати такі параметри:

Тобто поле для сторінки розділу взагалі можемо пропустити. для сторінки елемента: # ELEMENT_CODE # /. Не забуваємо пропустити слеш на початку!

Відзначаємо галочку «Встановлювати статус 404, якщо не знайдені елемент або розділ:».

тех. відступ:

Цим то ми і скористаємося, а щоб цей статус правильно оброблявся,

6. додамо наступний код в файл /bitrix/php_interface/init.php:

Роман, у мене не працює, зробив все один в один.
неправильний урл відсилає на кореневу папку ...
але в чпу у мене
Включити підтримку ЧПУ:
Каталог ЧПУ (щодо кореня сайту): / catalog / brend /
Список розділів:
Розділ: # SECTION_ID # /
Детальна інформація: #SECTION_ID # / # ELEMENT_ID # /
Таблиця порівняння: compare /

як-то можна зробити?

Роман, спасибі за статтю!
Зробив по Ваших інструкцій, але неіснуючі сторінки видають сторінку 404, але статус 200.
Можете підказати в чому проблема?

Схожі статті