Создан контекст "new".
Заданы параметры:
base_url = /new/
http_host = site.ru
site_url = site.ru/new/
site_start = [нужный id внутри new]
error_page = [нужный id внутри new]
Создан плагин switchCntx, который слушает OnHandleRequest:
<?php
if ($modx->context->key == 'mgr') {return;}
elseif ($modx->event->name == 'OnHandleRequest') {
$var = $modx->getOption('request_param_alias', null, 'q');
$request = $_REQUEST[$var];
if (strpos($request, 'new/') === 0) {
$modx->switchContext('new');
$_REQUEST[$var] = substr($request, 8);
}
}
где "new" - имя контекста.
После этого, при заходе на site.ru/new/ - открывается site_start, тут все ок. При заходе на остальные - открывается 404. В этом проблема.
Почитав некоторые мануалы, создаю в корне папку new, туда копирую .htaccess, index.php и config.core.php:
- .htaccess - оставляю как есть (RewriteEngine On, RewriteBase / + чпу)
- index.php - меняю $modx->initialize('new');
- config.core.php - если меняю на site.ru/new/core, то получаю 503, если не меняю - весь поддомен ссылает на error_page основного контекста
Включены ЧПУ. Из всех опций включено все (да/нет).
Как победить?