Не работает чпу битрикс 404

Не работают ЧПУ в битриксе: 3 причины

При разработке магазина на битриксе достаточно часто возникают сложности с настройкой ЧПУ на сайте. Не столь важно, в компоненте ли каталога, новостей, или же каких-либо иных. Казалось бы, настройка ЧПУ по документации битрикса достаточно тривиальна, и там не может что-то пойти не так. Однако, опыт автора настоящей статьи, и те форумы, куда автор обращался за решением, говорят об обратном. Проблема существует и достаточно актуальна.

Ниже представлены 3 самые распространенные причины того, почему могут не работать настройки ЧПУ в битриксе. Причем могут не работать ЧПУ для всех типов страниц компонента, или же только для детальных страниц. Итак, причины могут быть следующими:

  1. Неправильные настройки ЧПУ в настройках инфоблока и компонента
  2. Ошибки в urlrewrite.php
  3. Некорректные правила в .htaccess

Следует рассмотреть каждую причину детально.

1. Неправильные настройки ЧПУ в инфоблоке и компоненте

Данная причина является самой простой по своему характеру и самой легкой в исправлении. Собственно, диагностику корректности настройки ЧПУ на сайте нужно начать с этого шага.

Подробное описание о том, как настроить ЧПУ для компонента можно найти в справке (учебных курсах) битрикса. Однако, в качестве примера, хотелось бы привести наиболее типичные настройки ЧПУ для каталога товаров в интернет-магазине:

Шаг А. Настройки ЧПУ в инфоблоке

На вкладке настроек инфоблока ( “Контент” > “Инфоблоки” > “Типы инфоблоков” > Далее индивидуально ) указываем:

Шаг Б. Настройки ЧПУ в компоненте каталога

В настройках компонента, на вкладке “управление адресами страниц”, указываем:

Сохраняем изменения, сбрасываем кеш, проверяем результат. Если ЧПУ не работают, переходим к шагу 2.

2. Проблемы с файлом urlrewrite.php

Говоря простыми словами, urlrewrite.php, лежащий в корне сайта — это файл, в котором содержатся правила, в которых сообщается серверу о том, как обрабатывать тот, или иной файл.

В самом деле, может быть несколько причин, почему правила, записанные в urlrewrite, могут работать некорректно:

  • Нарушена очередность правил
  • Ошибка сохранения при перезаписи файла CMS
  • CMS, при сохранении настроек компонента перезаписала настройки, ранее внесенные в файл руками
  • Ошибки в путях, синтаксисе и т.д.

Источник

ЧПУ и ошибка 404

Проблема проста. Чувствую что решается за пять минут, но пока ни как не пойму куда копать. Нужно чтоб URL были вида https://site.org/catalog/nazvanie_tovara.html
Что я делала. В настройках компанента написала

URL страницы информационного блока: #SITE_DIR#/catalog/
URL страницы раздела: #SITE_DIR#/catalog/#SECTION_CODE#/
URL страницы детального просмотра: #SITE_DIR#/catalog/#ELEMENT_CODE#.html

Я почему-то думала что для начала этого должно хватить, но страницы открываются по старому.
https://site.org/catalog/kod_razdela/cod_tovara/
Тоесть выходит что оно берет вид этих ссылок откуда-то еще, но сколько читала, всюду написано что именно тут. Кэш сбрасывала, не помогает. Решила чтоб на верняка попробовать настроить еще в самом компаненте. Открыла каталог, включила режим правки, и там вкомпаненте прописала тоже самое. сами ссылки на странице поменялись, стали такимикак я хотела, но они же не работают, работают те старые. Что я еще не учла? Если что то и в управлении адресами добавляла правило #^catalog/(.*).html$# , но и оно не помагало. буду благодарна за любую подсказку.

Читайте также:  Микроволновка панасоник как настроить часы
Цитата
Андрей написал:
Обычно это все прописывается в настройках инфоблока и затем дублируется в настройках компонента и ЧПУ работает. Разве нет?

В настройках инфоблока как обычно:

Самописное правило из обработки адресов удалите, а затем еще раз откройте настройки компонента и сохраните — если там отмечена галочка использования ЧПУ, Битрикс в этот момент сам прописывает правило обработки адресов.

Это все, больше никаких настроек не нужно, все должно работать. Если нет — пишите, попытаемся разобраться почему не работает.

то редерикт на 404 остается.И вот что еще. Сейчас попробовала допустить умышленно ошибку вкоде, то тогда вместо 404 крашится с ошибкой, тоесть настройка работает, осталось подружить это все с самим компанентом.

Блин. Наверно не понятно написала, сама запуталась, а до понедельника край как нужно сделать, в понедельник выгрузку товаров уже делать. Помогите.

Цитата
Денис Сон написал:
Напишите, пожалуйста, адрес сайта где можно увидеть проблему.
Цитата
Денис Сон написал:
опробуйте его закомментировать — проблема, скорее всего уйдет.
Цитата
Наталия Курилович написал:
но только не пойму почему тогда если закоментировать строки с
Цитата
Наталия Курилович написал:
Не то.Проблема актуальна. Думаю что проще в htaccess правила прописать и не мучаться.

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

Цитата
Наталия Курилович написал:
Не то.Проблема актуальна. Думаю что проще в htaccess правила прописать и не мучаться.

Вот верная настройка 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#/ — ссылка формируется на основе символьного кода раздела (если есть) и кода элемента. Опять же, слеш в начале не ставим!

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

То есть поле для страницы раздела вообще можем пропустить , для страницы элемента: #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

Источник

ЧПУ и ошибка 404

Проблема проста. Чувствую что решается за пять минут, но пока ни как не пойму куда копать. Нужно чтоб URL были вида https://site.org/catalog/nazvanie_tovara.html
Что я делала. В настройках компанента написала

URL страницы информационного блока: #SITE_DIR#/catalog/
URL страницы раздела: #SITE_DIR#/catalog/#SECTION_CODE#/
URL страницы детального просмотра: #SITE_DIR#/catalog/#ELEMENT_CODE#.html

Я почему-то думала что для начала этого должно хватить, но страницы открываются по старому.
https://site.org/catalog/kod_razdela/cod_tovara/
Тоесть выходит что оно берет вид этих ссылок откуда-то еще, но сколько читала, всюду написано что именно тут. Кэш сбрасывала, не помогает. Решила чтоб на верняка попробовать настроить еще в самом компаненте. Открыла каталог, включила режим правки, и там вкомпаненте прописала тоже самое. сами ссылки на странице поменялись, стали такимикак я хотела, но они же не работают, работают те старые. Что я еще не учла? Если что то и в управлении адресами добавляла правило #^catalog/(.*).html$# , но и оно не помагало. буду благодарна за любую подсказку.

Цитата
Андрей написал:
Обычно это все прописывается в настройках инфоблока и затем дублируется в настройках компонента и ЧПУ работает. Разве нет?

В настройках инфоблока как обычно:

Самописное правило из обработки адресов удалите, а затем еще раз откройте настройки компонента и сохраните — если там отмечена галочка использования ЧПУ, Битрикс в этот момент сам прописывает правило обработки адресов.

Это все, больше никаких настроек не нужно, все должно работать. Если нет — пишите, попытаемся разобраться почему не работает.

то редерикт на 404 остается.И вот что еще. Сейчас попробовала допустить умышленно ошибку вкоде, то тогда вместо 404 крашится с ошибкой, тоесть настройка работает, осталось подружить это все с самим компанентом.

Блин. Наверно не понятно написала, сама запуталась, а до понедельника край как нужно сделать, в понедельник выгрузку товаров уже делать. Помогите.

Цитата
Денис Сон написал:
Напишите, пожалуйста, адрес сайта где можно увидеть проблему.
Цитата
Денис Сон написал:
опробуйте его закомментировать — проблема, скорее всего уйдет.
Цитата
Наталия Курилович написал:
но только не пойму почему тогда если закоментировать строки с
Цитата
Наталия Курилович написал:
Не то.Проблема актуальна. Думаю что проще в htaccess правила прописать и не мучаться.

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

Цитата
Наталия Курилович написал:
Не то.Проблема актуальна. Думаю что проще в htaccess правила прописать и не мучаться.

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

Источник

Оцените статью