Не работает https перенаправление в админке

Здравствуйте в файле .htaccess раскомментировал 2 строки:

RewriteCond %{SERVER_PORT} !^443
RewriteRule (.*) https://glorious-doors.ru/$1 [R=301,L]

Сайт и вход в админку корректно работает по https (http://joxi.ru/xAeeyPafdvBJAy), но как только вхожу в админку она ломается joxi.ru/l2ZVK0DHqY3N2J
а вот если добавлю букву s в http, то админка будет корректно работать.

Подскажите, как решить эту проблему, что бы автоматом в админке перебрасывалось на защищенный протокол https?
Александр Янк
13 марта 2017, 05:40
modx.pro
2
3 888
0

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

Илья Уткин
13 марта 2017, 10:30
2
+1
Создай вот такой плагин на событие OnHandleRequest

if ($modx->event->name != "OnHandleRequest") {
   return;
}
$uri = $_SERVER['REQUEST_URI'];
$http_host = $_SERVER['HTTP_HOST'];
$site_url = str_replace(array('www.', 'http://', 'https://', '/'), '', $modx->getOption('site_url'));
// for https set true
$https = true;
// robots.txt allways without redirect
if ($uri == '/robots.txt') return;
if ($http_host != $site_url || ($https && !$_SERVER['HTTPS'])) {
    if ($https) {
        $protocol = 'https://';
    } else {
        $protocol = 'http://';
    }
    $modx->sendRedirect($protocol.$site_url.$uri, array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
    Николай
    13 марта 2017, 10:54
    +1
    А не проще ли и корректнее в папке с админкой переставить точку в htaccess и в нем добавить правило:

    RewriteCond %{SERVER_PORT} !^443
    RewriteRule (.*) glorious-doors.ru/$1 [R=301,L]

    ?

    Там сейчас скорее всего rewrite off стоит. Ну или заходить по https
      Илья Уткин
      13 марта 2017, 10:57
      +2
      Может и проще… Только не люблю я вносить изменения в .htaccess (вдруг, в будущем, потребуется перенести на сервер без Apache — тогда будет больше возни).
      Александр Янк
      13 марта 2017, 22:16
      0
      Спасибо большое, работает!
        Максим
        20 июля 2021, 16:26
        0
        Илья, а куда копать, если плагин на сайте не работает? Событие выставлено, код вставлен без ошибок, в админке как был на хттп, так и остается.
        Алексей Федоров
        13 марта 2017, 11:45
        0
        На всякий случай стоит проверить системную настройку server_protocol в core -> система и сервер. Там нужно поставить https. По идее, больше никакого шаманства для админки не потребуется. Разве что uri перегенерировать после изменений
          Александр Янк
          13 марта 2017, 22:12
          0
          это давно сделал, вообще ничего не происходило. Даже кеш сбрасывал.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7