Как настроить ЧПУ на Битрикс с использованием urlrewrite?

  • 11 сентября 2023 г. 8:37
Ответы на вопрос 2
Ваше правило ЧПУ выглядит правильно, но есть несколько моментов, которые возможно вызывают проблему.

1. Убедитесь, что в настройках сайта 1С-Битрикс включено использование ЧПУ. Для этого перейдите в административную панель и откройте настройки сайта (Настройки -> Настройки продукта -> Настройки сайта). Убедитесь, что опция "Включить обработку ЧПУ" (USE_URL_REWRITE) установлена в значение "Y".

2. Убедитесь, что в вашем файле .htaccess включено перенаправление на файл urlrewrite.php. Проверьте, есть ли в вашем .htaccess следующие строки:

```
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
```

3. Убедитесь, что ваш файл urlrewrite.php находится в корневой директории вашего сайта (рядом с файлом .htaccess).

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

```
array (
    'CONDITION' => "#^/catalog/brands/(.*)/#",
    'RULE' => "brand=$1",
    'PATH' => '/catalog/index.php',
    'SORT' => 3000,
)
```

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

Если проблема остается, пожалуйста, уточните, какая ошибка вы получаете при переходе на страницу https://my-site.ru/catalog/brands/neo/.
1. Используйте свой собственный комплексный компонент для работы с ЧПУ. Он позволит вам создать разные URL-адреса для страниц вашего сайта, как, например, для списка брендов или для детальной страницы конкретного бренда.
2. У вас возник конфликт с SEF и символьным кодом разделов. Если вы указали в настройках SEF, что путь к детальной странице выглядит как "#SECTION_CODE_PATH#/#ELEMENT_ID#", то фраза "brands" рассматривается как символьный код раздела. Чтобы избежать этого, рекомендуется использовать другую структуру URL-адресов.
3. Вам необходимо создать ЧПУ-структуру, которая будет иметь следующие адреса: 
- Детальная страница конкретного бренда: /catalog/brands/#BRAND_CODE#/
- Список брендов: /catalog/brands/
- Детальная страница конкретного элемента: /catalog/item/#ELEMENT_CODE#/
- Список элементов в разделе: /catalog/section/#SECTION_CODE_PATH#/
- Список разделов: /catalog/
4. В составе вашего собственного компонента можно использовать стандартные компоненты Битрикса для более простых задач.
Похожие вопросы