Ну то что вы построили ссылку, не значит что у вас есть эти страницы. Поэтому я у вас и спрашивал - а у вас ссылки site.ru/moskva/punkt_menu/ открываются уже?Если создать меню в нутри раздела "Города" т.е. Москва -> меню -> пункт меню, тогда открываться будет. Но тогда получается что в каждом городе нужно создовать дубликат меню. А мне хотелось бы вынести меню за пределы (в корень), что бы у всех городов оно было общее. Иначе при возникновении необходимости во всех городах поменять или добавить пункт меню придется в каждом меню города вносить изменения, а их 169 в моем случае.
wolframcheg, жестко вы предлагаете. Проще уж тогда написать плагин, который будет формировать нужный freeze url для ресурсов с определенным родителем.
wolframcheg, жестко вы предлагаете. Проще уж тогда написать плагин, который будет формировать нужный freeze url для ресурсов с определенным родителем.Да, согласен, исключать в .htaccsesse не вариант. Даже если допустить двухсотстрочный .htaccsess то все равно так как нужно, это работать не будет. У меня идея с подменой $_SERVER["HTTP_REFERER"], $_ENV["HTTP_REFERER"], $_SERVER["REQUEST_URI"] и т.д. на нужный мне. Пака не знаю что из этого выйдет. Поже тпишусь детально.
wolframcheg, жестко вы предлагаете. Проще уж тогда написать плагин, который будет формировать нужный freeze url для ресурсов с определенным родителем.
Quote from: whitebyte at Feb 20, 2015, 05:21 AMОбсалютно верно. Поробывал разные решения. Идеи кончались. Как быть пока не знаю.wolframcheg, жестко вы предлагаете. Проще уж тогда написать плагин, который будет формировать нужный freeze url для ресурсов с определенным родителем.
Исходя из поставленной задачи замороженный урл тут вообще не в тему.. ресурсы с городами как я понял по факту не имеют дочерних ресурсов.
Создайте плагин на собыитие OnPageNotFound, в массив укажите все города
Тело плагина -
<!--?php
if ($modx--->event->name != 'OnPageNotFound') {return false;}
$alias = $modx->context->getOption('request_param_alias', 'q');
if (!isset($_REQUEST[$alias])) {return false;}
$request = $_REQUEST[$alias];
$tmp = explode('/', $request);
$cities = array('moscow','perm','caliningrad','ecaterenburg');//массив всех городов
if(in_array($tmp[0],$cities)){
$id=$modx->findResource(str_replace($tmp[0].'/','',$request));
$modx->sendForward($id);
}
$id=$modx->findResource(str_replace($tmp[0].'/','',$request));