Рейтинг: 2.8902  
Новая
Предложил Пользователь 1064429 28.11.2019 10:41:49

Добавить проверку перед записью в urlrewrite.php

Если у компонента в настройках не заполнен блок полей с ЧПУ то при сохранении его настроек, в правило обработки адресов добавляется не корректная запись например:

#^# bitrix:news /nf/tsentralnyj-filial/index.php

в итоге перестает работать правило 404 ошибки и могут возникать другие проблемы!

Просил ТП уже не однократно, писал Шаромову, что бы добавили проверку при сохранении настроек компонента - если не заполнены поля ЧПУ то не надо делать запись в правило обработки адресов! Но все бесполезно...

Коллеги, давайте поможем сами себе хотя бы в этом, и проголосуем за эту правку!!!
Рейтинг: 1.2214  
На голосовании
Предложил Пользователь 259944 22.07.2016 15:16:24

Добавить http код ответа в urlrewrite.php

Уважаемые коллеги!

Добавьте для urlrewrite.php дополнительный параметр код ответа. Периодически при переадресации необходимо возвращать определенный код ответа.

Будет удобнее, если вся адресация будет правиться в одном месте. Сейчас же, как правило, необходимо менять .htaccess или пр. конфиги сервера. Не удобно.
Рейтинг: 3.1737  
На голосовании
Предложил Пользователь 283951 25.06.2016 11:03:34

UrlRewriter::loadRules добавить Event (callback)

Добрый день,

Будет очень удобно, если в метод UrlRewriter::loadRules добавить событие, которое позволит модифицировать правила обработки адресов через AddEventHandler.



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

Проблема в том, что приходится перезаписывать файл urlrewrite.php что может привести проект к полной неработоспособности.

AddEventHandler решил бы эту задачу.
Рейтинг: 1.0617  
На голосовании
Предложил Пользователь 154568 29.10.2015 15:15:37

Добавить неперетираемые файлы urlrewrite

Добавьте возможность создать файлы urlrewrite_before.php и urlrewrite_after.php, которые будут добавляться к основным правилам, но не будут перетираться автоматом битриксом. Когда делаешь совсем не стандартный функционал, который должен иметь ЧПУ, но не влезает в функционал компонентов новости или каталога, приходиться дописывать свои правила и очень не удобно, что они перетираются при редактировании инфоблоков из публичной части.

Можно конечно пилить компонент новости или каталога добавлять свои обработчики туда, но иногда этого будут дольше по времени, чем просто использовать доп. правило и создать отдельную страницу с нужным фильтром.  
Рейтинг: 30.7615  
На голосовании
Предложил Пользователь 71426 03.04.2015 13:27:05

Учесть поле SORT при сортировке записей urlrewrite

Добавить 4 строки в файл  /bitrix/modules/main/classes/general/urlrewriter.php
в начало функции __RecordsCompare
$sort_a = intval($a["SORT"]) ?: 100;
$sort_b = intval($b["SORT"]) ?: 100;
if ($sort_a > $sort_b) return 1;
elseif ($sort_a < $sort_b) return -1; 
Таким образом будет учитывать поле SORT при сравнении записей,
если поле SORT одинаковое, будет работать старый алгоритм.


Это нужно для того чтобы можно было задать строгий порядок записей в urlrewrite и не возникало проблемы перетасовки правил в urlrewrite.php
Рейтинг: 13.4995  
На голосовании
Предложил Пользователь 94272 14.02.2014 14:09:13

Установка приоритета правил обработки адресов

Правила обработки адресов

Было бы удобно, если бы можно было манипулировать очередностью установки правил в urlrewrite.php из админки.

P.S. Сори, такая идея уже была http://idea.1c-bitrix.ru/add-sort-of-processing-addresses-urlrewritephp/
Рейтинг: 2.1472  
На голосовании
Предложил Пользователь 94272 17.01.2014 15:12:21

Копировать правило обработки адресов

Копирование правил обработки адресов

Часто приходится иметь в рамках одного проекта похожие правила обработки адресов, но на записывание правил "с нуля" уходит больше времени, чем если бы правило можно было скопировать и отредактировать перед сохранением.
Рейтинг: 0  
На голосовании
Предложил Пользователь 3214 10.12.2013 05:23:41

А нельзя ли в файлике /bitrix/modules/main/include/urlrewrite.php файл /urlrewrite.php инклюдить не командой include а командой include_once?

имеется ввиду заменить чтобы битриксы заменили

//.........
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/virtual_io.php");
$io = CBXVirtualIo::GetInstance();

$arUrlRewrite = array();
if(file_exists($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php"))
   include($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php");

if(isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == '404' || isset($_GET["SEF_APPLICATION_CUR_PAGE_URL"]))
//............
 
на
//.........
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/virtual_io.php");
$io = CBXVirtualIo::GetInstance();

if(!isset($arUrlRewrite)) {$arUrlRewrite = array();} 
//и ещё $arUrlRewrite разрешить инициализировать снаружи этого файлика.  

if(file_exists($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php"))
   include_once($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php");
###^^^^^^^^^###########

 if(isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == '404' || isset($_GET["SEF_APPLICATION_CUR_PAGE_URL"]))
//............
 
смысл сего действа в том, что это позволит не переписывая из-за пяти буковок файл в свою область менять/добавлять динамически правила урлреврайта (только не спрашивайте меня зачем это нужно, просто хочется такого вот извращения, если сделают напишу как это применять для мира во всём мире ;) )
Рейтинг: 0.4972  
Новая
Предложил Пользователь 91132 29.04.2013 15:38:50

Добавить возможность использовать совпадения $1,..,$N из CONDITION в параметре PATH

Требуется разбирать URL вида «/branches/BRANCH_CODE/»

Задаем в urlrewrite.php правила:

array(    "CONDITION" => "#^\/branches\/(.*)\/#",
   "PATH"    => "/$1/index.php",
   ),
..но увы не работает. Так как совпадения $1..$N доступны только в параметре RULE

В итоге приходится захламлять urlrewrite.php правилами вида:

array(    "CONDITION" => "#^\/branches\/BRANCH_CODE1\/#",
   "PATH"    => "/BRANCH_CODE1/index.php",
   ), и т.д.
Рейтинг: 99.5134  
В работе
Предложил Пользователь 63180 23.11.2011 02:40:40

Добавить поле СОРТИРОВКА в обработке адресов urlrewrite.php

Нужна необходимость задавать сортировку для правил обработки адресов.
Сейчас допустим при изменении этих правил компонентами валится вся очерёдность :(