Друзья, памагитииии! Не хватает мозгов, есть плагин, который делает из URL поддомены, тут порядок.
Плагин запускается на события OnHandleRequest и OnPageNotFound.
Вначале в цикле делаем список поддоменов из страниц, которые будут отображаться при переходе по ним. Все работает. Если есть страница например site.ru/page то она откроется и ее контент по адресу page.site.ru.
Но вот засада, страница так же открывается и по старому адресу site.ru/page как теперь докрутить в плагин так, что бы при переходе на страницу, был редирект на ее созданный поддомен?
Я думаю нужно получить ID и ALIAS текущей страницы, и сделать редирект на ее поддомен, но ничего не получается :(
пробовал так
if($parent === 15){
$url = MODX_URL_SCHEME.$doc->get('alias').'.site.ru';
$modx->sendRedirect($url);
}
А вот код самого плагина:
if(!$docs = $modx->getCollection('modResource', array(
'parent' => 15,
'published' => 1,
'deleted' => 0,
'searchable' => 1
))){return;}
$domains = [];
foreach ($docs as $doc) {
$domains[$doc->get('alias').'.site.ru'] = $doc->get('id');
}
switch ($modx->event->name) {
case 'OnHandleRequest':
if (array_key_exists($_SERVER['HTTP_HOST'], $domains)) {
$modx->config['site_start'] = $domains[$_SERVER['HTTP_HOST']];
/* $parent = $modx->resource->get('parent');
if($parent === 15){
$url = MODX_URL_SCHEME.$doc->get('alias').'.site.ru';
$modx->sendRedirect($url);
}
*/
}
break;
case 'OnPageNotFound':
if (array_key_exists($_SERVER['HTTP_HOST'], $domains)) {
$subdomain = array_shift(explode('.', $_SERVER['HTTP_HOST']));
if ($id = $modx->findResource($subdomain.$_SERVER['REQUEST_URI'] , 'web')) {
$modx->sendForward($id);
}
}
break;
}