использую контексты на базе модх. Имею несколько доменов главный site.ru и несколько дополнительных site1.ru, site2.ru
С помощью плагина определяю контекст и делаю соответсвенно редирект:
<?php
// Работаем только на фронтенде
if ($modx->event->name != 'OnHandleRequest' || $modx->context->key == 'mgr') {return;}
// Определяем запрашиваемый хост
$host = $_SERVER['HTTP_HOST'];
// Выбираем контекст с настройкой base_url
$q = $modx->newQuery('modContextSetting', array('key' => 'http_host', 'value' => $host));
$q->select('context_key');
$tstart = microtime(true);
if ($q->prepare() && $q->stmt->execute()) {
// Учитываем наш запрос в БД
$modx->queryTime += microtime(true) - $tstart;
$modx->executedQueries++;
// Получаем ключ контекста
if ($context = $q->stmt->fetch(PDO::FETCH_COLUMN)) {
// Web инициализируется в index.php - на него переключаться не нужно
if ($context != 'web') {
$modx->switchContext($context);
}
}
}
убрала строгий редирект на главную
if ($host != 'site.ru') {
return 301 https://site.ru$request_uri;
}
Всё работало исрпавно. Но возникла проблема начала делать редирект с http на https:
if ($scheme = 'http') {
return 301 https://$host$request_uri;
}
И получаю ошибку - основной site.ru с контекстом web редиректится на https, но вот все остальные контексты site1.ru, site2.ru получают множественные редиректы и не открываются вовсе. Подскажите пожалуйста, в чем может быть проблема?
потыкай курлом по своим доменам и посмотри кто выдает какие редиректы
надо попробовать, спасибо
забыл сразу сказать - проверяй по логам до чего долетает запрос и какие ответы. а то могут быть нестыковки в приложении например
буду гуглить, спасибо
типа curl -i http://site.ru. там будет заголовок location. это куда редирект. вот так по шагам и шагай
ага.. спасибо, уже пробую
301 Moved Permanently получаю, в Location: https://site.ru/ - то есть полностью он же
Обсуждают сегодня