Переключение контекстов

Подскажите пожалуйста, или ткните в статью, как сейчас правильно переключать контексты? Чтоб не было проблем с авторизацией (это важно) как описано в комментарии. Если только через index.php как там пишет автор коммента, то так же прошу ссылку на актуальную статью как это сделать.
Во всех статьях что я нашел все по-разному переключают. Много статей очень старые, не понятно что из этого актуально.

Пробовал по этой, создал плагин:
<?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, 'context/') === 0) {
		$modx->switchContext('fteam');
		// Вырезаем лишнее 
		$_REQUEST[$var] = substr($request, 8);
	}
}
Контекст переключается когда в адресной строке вводишь site.com/context/ — попадаю на главную страницу контекста. Но при попытке перейти на другую страницу внутри этого контекста — Page not found.
Может какие-то еще настройки нужно сделать? Почему-то если не ставить / в конце адреса, то попадаю на основной контекст. Тоже не понятно что с этим делать. Хотелось бы попадать на нужную страницу независимо от того, стоит в конце / или не стоит.

Настройки контекста:
Название (ключ контекста): fteam
base_url - /context/
locale - ru_RU.UTF8 (хз надо ли? сайт НЕ мультиязычный)
site_start - 3
site_url - https://site.com/context/
То есть название и путь контекста отличаются. Но я так понял в этом ничего страшного нет?

.htaccess:
RewriteEngine On
RewriteBase /

RewriteRule "/\.|^\.(?!well-known/)" - [F]

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
В системных настройках:
friendly_urls - Да
Больше ничего не менял вроде. Что-то еще нужно?
Algirdas
30 мая 2020, 23:35
modx.pro
1 748
0

Комментарии: 3

Сергей Шлоков
31 мая 2020, 16:41
+2
Берем библиотеку modHelpers и юзаем switch_context().
    Algirdas
    31 мая 2020, 21:39
    0
    Зачем мне эта библиотека? Плагины уже давно все написаны.
      Algirdas
      01 июня 2020, 23:37
      +1
      Однако, спасибо!
      Рано я ваш совет отбросил :) Все решилось плагином:

      <?php
      switch_context(['base_url' => request()->segment(1)]);

      и установкой modHelpers
      Чайник я, прошу понять и простить :)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3