Хоча навіть зробивши все за інструкцією, бажаного результату досягти не вдалося (((. Довелося розкинути мізками, і озброївшись командою print backtrace, відловити негодяйским 404 помилку і змусити її працювати як належить.
Власне, проблема:
На що варто звернути увагу:
1. сам файл 404.php у мене виглядає приблизно так (насправді стандартно виглядає):
тех. відступ:
Спробуємо семуліровать 404 помилку з якою-небудь статичної сторінки і відловити результат через команду debug_print_backtrace ();
Дивимося файл - бачимо там рядок з інклюд 404 сторінки. Вона викликається, очевидно, в тому випадку, якщо сторінка не знайдена в структурі файлів і папок, а також у файлі urlrewrite.php в корені сайту, де як раз описані всі наші Інфоблоки і каталоги (для правильної роботи ЧПУ).
- щоб Інфоблоки і каталоги в разі неправильної посилання віддавали 404 статус
- щоб цей статус правильно оброблявся і приводив до виклику сторінки 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.
Можете підказати в чому проблема?