multiscripter
@multiscripter

Как настроить ЧПУ в компоненте bitrix.news?

Всем привет.
Проблема: со включённым ЧПУ на странице детального просмотра новости текст новости не выводится.
Для вывода новостей использую комплексный компонент bitrix.news.
Список новостей выводится по адресу: bitrix-biz.com/novosti
С выключенным ЧПУ ссылка на новость детально имеет вид: http://bitrix-biz.com/novosti/?ELEMENT_ID=%ID%
где %ID% - идентификатор новости.
С включённым ЧПУ ссылка на новость детально имеет вид: http://bitrix-biz.net/novosti/%ID%/
где %ID% - идентификатор новости.

Настройки инфоблока:
5b5af49204118426323384.png

Настройки ЧПУ компонента:
5b5af4ad301c8496880558.png

urlrewrite.php в корне сайте для новостей есть такая запись:
array (
    'CONDITION' => '#^/novosti/#',
    'RULE' => '',
    'ID' => 'bitrix:news',
    'PATH' => '/novosti/index.php',
    'SORT' => 100,
  )


С выключенным ЧПУ в компоненте всё работает: и страница "список новостей", и страница "новость детально".
С включённым ЧПУ в компоненте на странице "новость детально" текст новости не отображается.

Помогите правильно настроить ЧПУ компонента bitrix.news. Можно ли это сделать только через gui (без "ковыряния в коде")?

.htaccess в корне сайта:
Options +Indexes 
ErrorDocument 404 /404.php

<IfModule mod_php5.c>

  php_flag session.use_trans_sid off
  
  php_value display_errors 1
  
  php_value mbstring.func_overload 2
  php_value mbstring.internal_encoding UTF-8
  
  php_value max_input_vars 10000
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_REFERER} http://bot.net/
    RewriteRule .* http://bitrix-biz.net [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php [L,QSA]
</IfModule>

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>

<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
</IfModule>
  • Вопрос задан
  • 4920 просмотров
Решения вопроса 1
проверьте, работает ли .htaccess и есть ли в нем условия для mod_rewrite

уберите секцию
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} bot.net
RewriteRule .* bitrix-biz.net [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,QSA]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Q_BASIC
Программист
тут инструкция полная по настройке ЧПУ в Битрикс

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

Войдите, чтобы написать ответ

Похожие вопросы