Проблема сортировки правил в urlrewrite.php известна и достаточно жарко обсуждается в сообществе. Внесу свою лепту:
Известно, что правила в urlrewrite.php сортируются по убыванию длины условий. Необходимо поднять что-то вверх? Увеличь длину строки, дописав незначимых символов. Эти символы в программировании называются комментариями и в регулярных выражениях они есть. Как пользоваться:
При перестройки правил в админке или при добавлении компонента с ЧПУ порядок не нарушается, комментарии не удаляются, регулярное выражение с точки зрения компилятора не усложняется. Профит?
Данное решение использую уже не помню сколько лет.
P.S. Если данный финт нужно провернуть с правилами у которых есть ID (то есть с теми, которые прописывают сами компоненты), то сотрите его ("ID" => "",) и сделайте правило длиннее. Короткое создастся всё равно, но не будет срабатывать так как перекроется вышестоящим.
Максим, прошу прощение, не могли бы Вы подробнее описать, в чем элементарность? Вижу разницу то, что все условие заключено в фигурные скобки... Что означает "(?#_________________________)" ?. Благодарю за ответ!
Кузнецова Ольга, элементарность в том, что Битрикс сортирует просто по длине регулярного выражения, а то, что вы процитировали - это комментарий внутри регулярки. Он не несет смысловой нагрузки, но позволяет обмануть ядро.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».