Почему не открывается детальный просмотр новости?
Осваиваю Битрикс. Столкнулся со следующей проблемой. Создал новостной инфлоблок. Анонсы новостей выводятся как положено, но при попытке перейти на детальный просмотр новости выводится ошибка "404 Not Found". Объясните почему и как это решить.
Мой файл urlewrite.php содержит следующий код:
<?php
$arUrlRewrite=array (
0 =>
array (
'CONDITION' => '#^\\/?\\/mobileapp/jn\\/(.*)\\/.*#',
'RULE' => 'componentName=$1',
'ID' => NULL,
'PATH' => '/bitrix/services/mobileapp/jn.php',
'SORT' => 100,
),
1 =>
array (
'CONDITION' => '#^/rest/#',
'RULE' => '',
'ID' => NULL,
'PATH' => '/bitrix/services/rest/index.php',
'SORT' => 100,
),
2 =>
array (
'CONDITION' => '#^/news/#',
'RULE' => '',
'ID' => 'bitrix:news',
'PATH' => '/news/index.php',
'SORT' => 100,
),
);
Ответы (3 шт):
Скорее всего дело в некорректном регулярном выражении. Судя по скриншоту у Вас URL детального просмотра конкретной новости будет вида /news/<id новости>/.
Регулярное выражение #^/news/# условно можно перевести как начинается на /news/. Но ведь у Вас после /news/ есть еще и <id новости>. Но Вы не описали этого в регулярном выражении. Соответственно нет и совпадения.
Идем на https://regex101.com/ и проверяем - #^/news/# или /^\/news\// для строки /news/500/ - видим, что /news/ попадает, а вот 500 нет. Изменяем на #^/news/\d+/# ( если у Вас Id новости - число), либо на #^/news/.+/# для любого варианта.
Проверяем. Ву-а-ля - вся строка попадает под регулярное выражение.
Регулярное выражение в urlrewrite.php верное, но в настройках инфоблока указано не "news", а "new". Плюс хорошо было бы посмотреть на настройки компонента - там тоже могут быть некорректные настройки ЧПУ.
- Если файл urlewrite.php у вас сгенерировался автоматически, то папка у вас вероятно /news/. А в настройках инфоблока вы указали /new/ (нет S)
- Проверьте какое значение параметра SEF_FOLDER при вызове компонента, /new/ или /news/
- В настройках компонента в макросе детальной страницы должно быть #ELEMENT_CODE#/
