Меняем контексты местами. SOS [[РЕШЕНО]]

Есть 2 контекста. web, ua. Хочу поменять их местами, что-бы ua был главным. (если я не меняю их то все работает отлично. но мне нужно их местами поменять.)

что у меня есть:
.htaccess
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ua|ru)/favicon.ico$ favicon.ico [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ua|ru)/assets(.*)$ assets$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(ua|ru)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
index.php заменил web на ua
/* Initialize the default 'web' context */
$modx->initialize('ua');

контекст web
base_url — /ru/
cultureKey — ru
site_start — 1
site_url — soffits.com.ua/ru/

контекст ua
base_url — /
cultureKey — ua
site_start — 71
site_url — soffits.com.ua/

Плагин switchContext
<?php

# OnHandleRequest
if($modx->context->get('key') != "mgr"){
    switch ($_REQUEST['cultureKey']) {
        case 'ru':
            $modx->switchContext('web');
            break;
        case 'en':
            $modx->switchContext('en');
            break;
        default:
            /* Set the default context here */
            $modx->switchContext('ua');
            break;
    }
    unset($_GET['cultureKey']);
}
Системные настройки
default_context — ua
babel.contextKeys — web,ua
site_start — 71

Ну визуально все хорошо ведь. А не работает… выдает 404 ошибку, помогите советом.
soffits.com.ua/
soffits.com.ua/ru/

в общем я правил все в .htaccess а у меня стоял nginx и я про это забыл. давно сайт создавался. я там убрал правила которые мешали и все спокойно заработало.
Александр Иващенко
09 августа 2019, 12:38
modx.pro
822
0

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

atrox
09 августа 2019, 15:26
0
тоже самое сделал вчера, без проблем

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ru|lv)/favicon.ico$ favicon.ico [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ru|lv)/assets(.*)$ assets$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(ru|lv)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
<?php
/* Запускаем плагин только на фронтенде и с включенными sef-url */
if ($modx->context->key == 'mgr' || !$modx->getOption('friendly_urls') || $modx->event->name != 'OnHandleRequest') {
return;
}



/* Определяем текущий язык в cultureKey */
switch ($_REQUEST['cultureKey']) {
/* Переключаем контекст */
case 'ru':
$modx->switchContext('web');
break;

/* Добавляем дополнительные языки в плагин, если нужно
case 'de':
$modx->switchContext('dtsch');
break;
*/

/* Устанавливаем контекст по умолчанию */
default:
$modx->switchContext('lv');
break;
}

/* Очищаем GET-параметр чтобы не допустить появлении ссылки вида cultureKey=xy при генерации URL других компонентов */
unset($_GET['cultureKey']);
web — joxi.ru/4Ak8WwbCo8V3nr
lv — joxi.ru/V2Vdwk1tdXGygr

в index.php ничего не менял
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
5