Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

urlrewrite.php

00 голосов
7
Подозреваю, что проблема именно в этом в urlrewrite.php есть :
Код
$arUrlRewrite = array(
   array(
      "CONDITION"   =>   "#^/#",
      "RULE"   =>   "",
      "ID"   =>   "bitrix:catalog",
      "PATH"   =>   "/index.php",
   ),
   array(
      "CONDITION"   =>   "#^/manufact/([0-9]+)#",
      "RULE"   =>   "firm=$1",
      "PATH"   =>   "/manufact/index.php",
   ),
);

По обоим условиям, открывает /index.php, хотя в первом массиве указан компонент который вызывает это правило, как мне решить эту проблему ?

P.S. Конечно можно массивы местами поменять, но это единственный выход ?
спросил 28 Июль, 13 от Canon (260 баллов)

7 Ответы

00 голосов
А если переименовать /manufact/ в /_manufact/ и сделать как-то так?

Код
$arUrlRewrite = array(
   array(
      "CONDITION"   =>   "#^/([A-Za-z0-9]{1}.*|\?|$)#",
      "RULE"   =>   "",
      "ID"   =>   "bitrix:catalog",
      "PATH"   =>   "/index.php",
   ),
   array(
      "CONDITION"   =>   "#^/_manufact/([0-9]+)#",
      "RULE"   =>   "firm=",
      "PATH"   =>   "/_manufact/index.php",
   ),
);
ответил 28 Июль, 13 от Ly (4,580 баллов)
00 голосов
Тоже работает,но если первый вариант ничем не грозит, то лучше, наверно, без подчёркиваний обойтись...
ответил 24 Сен, 13 от Canon (260 баллов)
00 голосов
Массив нужно сортировать по полю CONDITION от большей длины условия к меньшей, что за вас сделает редактор urlrewrite в админке если вы через него отредактируете.
Т.е. первым должно быть правило с manufact.
ответил 24 Дек, 13 от Delp (7,220 баллов)
00 голосов
Цитата
Марат Миннеханов пишет:
Тоже работает,но если первый вариант ничем не грозит, то лучше, наверно, без подчёркиваний обойтись...

По первому варианту вам всё время придётся следить за тем, чтобы запись с "CONDITION" => "#^/#" была на последнем месте.
ответил 09 Апр, 14 от Ly (4,580 баллов)
00 голосов
Кстати, как при последнем условии
Код
 array(
      "CONDITION"   =>   "#^/#",
      "RULE"   =>   "",
      "ID"   =>   "bitrix:catalog",
      "PATH"   =>   "/index.php",
   ), 

обрабатывать 404 ошибку, она всё время на главную выдаёт ?
ответил 02 Авг, 14 от Canon (260 баллов)
00 голосов
Цитата
Марат Миннеханов пишет:
обрабатывать 404 ошибку, она всё время на главную выдаёт ?

Получается - никак.
ответил 06 Дек, 14 от Pomnep (13,960 баллов)
00 голосов
То есть ЧПУ в компонентах 2.0 и обработка ошибок вещи несовместимые?
ответил 29 Март, 15 от Canon (260 баллов)

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

0 голосов
0 ответов
спросил 28 Июль, 13 от CmexXx (140 баллов)
0 голосов
3 ответов
спросил 08 Май, 13 от Narcisa (120 баллов)
0 голосов
1 ответ
спросил 17 Янв, 17 от loony (540 баллов)
0 голосов
3 ответов
спросил 18 Фев, 14 от KRIO (500 баллов)
0 голосов
0 ответов
спросил 08 Янв, 14 от XpoHo3aBp (860 баллов)