Почему не меняется урл детальной странице при смене физического пути?
Переименована папка средствами FTP с brands на otdel-prodazh, но детальная ссылка всё равно https://сайт.рус/brands/abkhaziya/ а должна быть https://сайт.рус/otdel-prodazh,/abkhaziya/
что было сделано:
-
переименована папка через FTP**
-
в компоненте на странице заменён “SEF_FOLDER” => “/otdel-prodazh/”,
-
в настройках инфоблока
URL страницы детального просмотра: #SITE_DIR#otdel-prodazh/#ELEMENT_CODE#/
URL страницы информационного блока: #SITE_DIR#otdel-prodazh/
Канонический URL элемента: #SITE_DIR#otdel-prodazh/#ELEMENT_CODE#/
Очищен кеш кнопкой ВЕСЬ КЕШ
Битрикс всё равно продолжает настаивать что урлы не менялись и ты сделал всё неверно.
Отличный вопрос! Это очень частая ситуация в Битрикс, когда логика URL не сразу обновляется. Вы сделали правильные шаги, но, скорее всего, проблема кроется в одном из следующих моментов.
Давайте пройдемся по чек-листу от наиболее вероятной причины к наименее вероятной.
- Кэш (Самая вероятная причина)
Битрикс агрессивно кэширует результаты работы компонентов, включая сгенерированные ссылки DETAIL_PAGE_URL
. Даже если вы изменили все настройки, система может продолжать показывать старые данные из кэша.
** Что делать: **
-
** Полная очистка кэша: ** Зайдите в административную панель:
Настройки -> Настройки продукта -> Автокэширование. На вкладке “Очистка файлов кэша” выберите “Все” и нажмите “Начать”. -
** Сброс управляемого кэша: ** После первого шага перейдите на страницу
ваш-сайт.ру/bitrix/admin/cache.php?lang=ruи нажмите “Сбросить весь управляемый кеш”. -
Откройте сайт в режиме инкогнито или с помощью
Ctrl+F5/Cmd+Shift+R, чтобы сбросить и кэш браузера.
** 90% проблем такого рода решаются именно полной очисткой кэша. **
- Правила обработки URL (
urlrewrite.php)
Когда вы используете ЧПУ (SEF_MODE = “Y”), Битрикс создает специальные правила в файле /urlrewrite.php
в корне сайта. Эти правила говорят системе, какой физический файл должен обрабатывать красивый URL. Возможно, старое правило для /brands/
осталось, а новое для /otdel-prodazh/
не создалось или создалось некорректно.
** Что делать: **
-
Зайдите в админ-панель:
Настройки -> Настройки продукта -> Обработка адресов -> Правила обработки. -
Внимательно посмотрите список. Вы должны найти там правило, примерно такого вида:
-
** Условие: **
#^/otdel-prodazh/# -
** Компонент: ** (пусто или ваш компонент)
-
** Файл: **
/otdel-prodazh/index.php -
** ID: **
bitrix:news(или ID вашего компонента) -
** Убедитесь, что нет старого правила для
#^/brands/#** . Если оно есть — удалите его. -
** Если нового правила нет: ** Самый простой способ его создать — это открыть страницу
/otdel-prodazh/в режиме правки, зайти в настройки компонента и ** просто нажать “Сохранить” ** , ничего не меняя. Эта операция заставит компонент переписать свои правила вurlrewrite.php.
- Настройки самого компонента (Приоритет)
Настройки URL в инфоблоке имеют **
низший приоритет **
. Главными являются параметры, переданные непосредственно при вызове компонента на странице. Вы указали, что изменили "SEF_FOLDER" => "/otdel-prodazh/"
, но нужно проверить и шаблоны путей.
** Что делать: **
-
Откройте в режиме PHP-кода файл, где находится папка, которую вы переименовали (вероятно,
/otdel-prodazh/index.php). -
Найдите вызов компонента, он выглядит примерно так:
$APPLICATION->IncludeComponent( “bitrix:news”, // или другой компонент, например, catalog “.default”, Array( // … другие параметры “SEF_MODE” => “Y”, “SEF_FOLDER” => “/otdel-prodazh/”, // Вы это уже проверили “SEF_URL_TEMPLATES” => array( “news” => "", “section” => “#SECTION_CODE#/”, “detail” => “#ELEMENT_CODE#/”, // <— ВОТ ЭТО КЛЮЧЕВОЙ ПАРАМЕТР! ), // … другие параметры ) );
- Убедитесь, что в массиве
"SEF_URL_TEMPLATES"в ключе"detail"** нет ** старого путиbrands. Там должен быть путь * относительно *SEF_FOLDER. Например,#ELEMENT_CODE#/илиitem/#ELEMENT_CODE#/. Полный путьotdel-prodazh/#ELEMENT_CODE#/здесь указывать ** не нужно ** . Битрикс сам “склеит”SEF_FOLDERи шаблон изSEF_URL_TEMPLATES.
План действий по шагам:
-
** Очистите кэш полностью ** (пункт 1). Проверьте результат в инкогнито. Не помогло? Идем дальше.
-
** Зайдите в настройки компонента на странице
/otdel-prodazh/** в режиме правки и просто нажмите “Сохранить”. Это должно обновить правила вurlrewrite.php. Проверьте результат (снова очистив кэш для верности). Не помогло? Идем дальше. -
** Проверьте файл
/urlrewrite.phpвручную ** (пункт 2). Удалите старые правила для/brands/, если они там остались. Проверьте. -
** Проверьте код вызова компонента ** (пункт 3), а именно массив
SEF_URL_TEMPLATES. Убедитесь, что там нет ничего лишнего.
Скорее всего, проблема решится на первом или втором шаге.

Ищете надежного партнера по веб-разработке и автоматизации? Мы помогаем бизнесу расти с помощью современных технологий, автоматизации процессов и экспертного SEO. Свяжитесь с нами, чтобы обсудить вашу задачу.