reddyk 23 марта 2015 0 8
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 Всеравно работать не хочет.

Есть ли другой способ сделать субдомен? вроде как хостер позволяет создавать папки с субдоменом итд
8 комментариев
Fi1osof1
Fi1osof 23 марта 2015г в 23:11 #
Еще раз читайте:
создал поддомен 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/, плагином ему должен меняться контекст.
r
reddyk 24 марта 2015г в 10:31 #
Благодарю, виноват что неправильно понял)
r
reddyk 24 марта 2015г в 10:55 #
так вот сделал, походу сам плагин работает не правильно. Направил selling-office.свойсайт.ru на свойсайт.ru и ничего не происходит кроме как переадресация на свойсайт.ru а там как было так и осталось
Fi1osof1
Fi1osof 24 марта 2015г в 13:25 #
Так в плагине поработайте, убедитесь что он правильно работает, какие переменные видит. Сделайте типа print $request; exit; или типа того. Что вы магией занимаетесь? Убедитесь что $modx->switchContext('sale'); выполняется,
r
reddyk 24 марта 2015г в 14:59 #
перешел на первый вариант, сделал всё как описано по ссылке. Галочку где надо поставил

<?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?

Простите за дурацкие вопросы)
Fi1osof1
Fi1osof 24 марта 2015г в 15:24 #
Сорри, не помогу, у вас отладка хромает. Прокачивайтесь по отладке.
r
reddyk 24 марта 2015г в 11:08 #
Может при добавлении настроек контекста надо ставить тип поля другой? у меня там по умолчанию стоит Текстовое поле
Fi1osof1
Fi1osof 24 марта 2015г в 13:28 #
Нет, не может. Тип поля — это только для ввода. Инфа идет одна и та же.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.