Не работает https перенаправление в админке
Здравствуйте в файле .htaccess раскомментировал 2 строки:
Сайт и вход в админку корректно работает по https (http://joxi.ru/xAeeyPafdvBJAy), но как только вхожу в админку она ломается joxi.ru/l2ZVK0DHqY3N2J
а вот если добавлю букву s в http, то админка будет корректно работать.
Подскажите, как решить эту проблему, что бы автоматом в админке перебрасывалось на защищенный протокол https?
RewriteCond %{SERVER_PORT} !^443
RewriteRule (.*) https://glorious-doors.ru/$1 [R=301,L]
Сайт и вход в админку корректно работает по https (http://joxi.ru/xAeeyPafdvBJAy), но как только вхожу в админку она ломается joxi.ru/l2ZVK0DHqY3N2J
а вот если добавлю букву s в http, то админка будет корректно работать.
Подскажите, как решить эту проблему, что бы автоматом в админке перебрасывалось на защищенный протокол https?
Комментарии: 7
Создай вот такой плагин на событие 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'));
}
А не проще ли и корректнее в папке с админкой переставить точку в htaccess и в нем добавить правило:
RewriteCond %{SERVER_PORT} !^443
RewriteRule (.*) glorious-doors.ru/$1 [R=301,L]
?
Там сейчас скорее всего rewrite off стоит. Ну или заходить по https
RewriteCond %{SERVER_PORT} !^443
RewriteRule (.*) glorious-doors.ru/$1 [R=301,L]
?
Там сейчас скорее всего rewrite off стоит. Ну или заходить по https
Может и проще… Только не люблю я вносить изменения в .htaccess (вдруг, в будущем, потребуется перенести на сервер без Apache — тогда будет больше возни).
Спасибо большое, работает!
Илья, а куда копать, если плагин на сайте не работает? Событие выставлено, код вставлен без ошибок, в админке как был на хттп, так и остается.
На всякий случай стоит проверить системную настройку server_protocol в core -> система и сервер. Там нужно поставить https. По идее, больше никакого шаманства для админки не потребуется. Разве что uri перегенерировать после изменений
это давно сделал, вообще ничего не происходило. Даже кеш сбрасывал.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.