Modx Revo 2.3.1
Делал всё как по bezumkin.ru/sections/tips_and_tricks/1987/
Подробно сейчас опишу каждый шаг может в нём ошибся:
Создал контекст Sale в имя написал selling
В настройках добавил:
Ключ base_url значение /ctxfolder/
Ключ error_page значение 801 это айди той страницы
Ключ http_host значение свойсайт.ru
Ключ site_name значение обозвал продажа офисов
Ключ site_start значение 21 это айди каталога которому нужен субдомен
Ключ site_url значение свойсайт.ru/ctxfolder/
далее создал плагин swCtx
и там
<?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, 'selling-office/') === 0) { $modx->switchContext('sale'); $_REQUEST[$var] = substr($request, 8); } }
создал поддомен selling-office.свойсайт.ru и перенаправил его на тот каталог в данном случае на свойсайт.ru/commercial/selling-office/
И теперь когда я набираю selling-office.свойсайт.ru он просто перенаправляет на свойсайт.ru/commercial/selling-office/ а мне надо чтобы ссылка оставалась.
Что я сделал не так?
Попробовал первый вариант. поддомен selling-office.свойсайт.ru перенаправил на свойсайт.ru Всеравно работать не хочет.
Есть ли другой способ сделать субдомен? вроде как хостер позволяет создавать папки с субдоменом итд
Еще раз читайте:
создал поддомен selling-office.свойсайт.ru и перенаправил его на тот каталог в данном случае на свойсайт.ru/commercial/selling-office/ И теперь когда я набираю selling-office.свойсайт.ru он просто перенаправляет на свойсайт.ru/commercial/selling-office/ а мне надо чтобы ссылка оставалась.
Вы направили домен на свойсайт.ru/commercial/selling-office/ и удивляетесь, что перенаправляется на свойсайт.ru/commercial/selling-office/. У вас докумен и должен идти на корень сайта, то есть на свойсайт.ru, но когда человек будет переходить в раздел /commercial/selling-office/, плагином ему должен меняться контекст.
Благодарю, виноват что неправильно понял)
так вот сделал, походу сам плагин работает не правильно. Направил selling-office.свойсайт.ru на свойсайт.ru и ничего не происходит кроме как переадресация на свойсайт.ru а там как было так и осталось
Может при добавлении настроек контекста надо ставить тип поля другой? у меня там по умолчанию стоит Текстовое поле
Так в плагине поработайте, убедитесь что он правильно работает, какие переменные видит. Сделайте типа print $request; exit; или типа того. Что вы магией занимаетесь? Убедитесь что $modx->switchContext('sale'); выполняется,
Нет, не может. Тип поля — это только для ввода. Инфа идет одна и та же.
перешел на первый вариант, сделал всё как описано по ссылке. Галочку где надо поставил
<?php
if ($modx->event->name == 'OnHandleRequest') {
if ($modx->context->get('key') == 'mgr') {return;}
// сравнение текущего имени хоста и искомого
if (strstr($_SERVER['HTTP_HOST'], 'testen.a.aaa0.ru') != false) {
$modx->switchContext('endomain');
return;
}
}
if (strstr($_SERVER['HTTP_HOST'], 'selling-office.свойсайт.ru') != false) {
$modx->switchContext('sale');
return;
}
в контексе все стоит как надо. $modx->switchContext('sale'); вот про это там ненаписано было. Где его поставить? в index.php?
Простите за дурацкие вопросы)
Сорри, не помогу, у вас отладка хромает. Прокачивайтесь по отладке.