Меняем контексты местами. SOS [[РЕШЕНО]]
Есть 2 контекста. web, ua. Хочу поменять их местами, что-бы ua был главным. (если я не меняю их то все работает отлично. но мне нужно их местами поменять.)
что у меня есть:
.htaccess
/* 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
default_context — ua
babel.contextKeys — web,ua
site_start — 71
Ну визуально все хорошо ведь. А не работает… выдает 404 ошибку, помогите советом.
soffits.com.ua/
soffits.com.ua/ru/
в общем я правил все в .htaccess а у меня стоял nginx и я про это забыл. давно сайт создавался. я там убрал правила которые мешали и все спокойно заработало.
что у меня есть:
.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 и я про это забыл. давно сайт создавался. я там убрал правила которые мешали и все спокойно заработало.
Комментарии: 5
тоже самое сделал вчера, без проблем
lv — joxi.ru/V2Vdwk1tdXGygr
в index.php ничего не менял
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/4Ak8WwbCo8V3nrlv — joxi.ru/V2Vdwk1tdXGygr
в index.php ничего не менял
сделал 1 в 1 и все равно 404 ошибка… бред какой то. есть желание опытным глазом взглянуть?
даже htaccess весь вычищал и делал как вы написали. все равно то же самое
вот файл на гугл диске куда я все скрины запихнул.
сдела по советам. и еще добавил скрины в файл гугл диска. все равно не работает. может что то мелкое я упустил?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.