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

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

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

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

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

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

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

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

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

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

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

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

Добрый день,

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



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

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

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

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

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

Можно конечно пилить компонент новости или каталога добавлять свои обработчики туда, но иногда этого будут дольше по времени, чем просто использовать доп. правило и создать отдельную страницу с нужным фильтром.  
Рейтинг: 28.8713  
На голосовании
Предложил Морковкин Никита 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  
На голосовании
Предложил Постоев Олег 14.02.2014 14:09:13

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

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

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

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

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

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

Часто приходится иметь в рамках одного проекта похожие правила обработки адресов, но на записывание правил "с нуля" уходит больше времени, чем если бы правило можно было скопировать и отредактировать перед сохранением.
Рейтинг: 0  
На голосовании
Предложил Goldmaker 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  
Новая
Предложил Прокофьев Андрей 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  
В работе
Предложил Кудин Александр 23.11.2011 02:40:40

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

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