Как включить HTTPS (SSL) в MODX

Для того чтобы перевести сайт на HTTPS нужно выполнить несколько шагов:

1. Включить возможность доступа к сайту по HTTPS

Для этого подключите SSL-сертификат в настройках хостинга. Чаще всего это можно сделать бесплатно на любом нормальном хостинге, таком как Timeweb.

2. Внести правки в core/config/config.inc.php

if (!defined('MODX_URL_SCHEME')) {
$url_scheme=  $isSecureRequest ? 'https://' : 'http://'; 
//заменить на:
if (!defined('MODX_URL_SCHEME')) {
$url_scheme=  'https://';

3. Отредактировать соответствующую настройку в MODX

Системные настройки -> [Поиск по ключу] server_protocol Установить https.

4. Убедится в доступности всех подключаемых файлов по HTTPS

Если на сайте используются соронние скрипты, стили, картинки или любые другие файлы, то они должны быть доступны по https. Для этого убедитесь, что адрес к ним прописан через https:// или //. Например:

  • <script src="//code.jquery.com/jquery-1.11.2.min.js"></script> — Хорошо!
  • <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> — Хорошо!
  • <script src="http://code.jquery.com/jquery-1.11.2.min.js"></script> — Плохо!

Проверить все ли в порядке можно через консоль браузера. Также, если что-то не так, то вы не увидете зеленую пометку в адресной строке браузера о том, что сайт "Надежный".

Добавить редирект в .htaccess с HTTP на HTTPS

(На Timeweb достаточно включить переадресацию в настроках сайта в панели управления (Люблю за это этот хостинг!))

Бывает, что переадресация работает некорректно, и выдает ошибку too many redirects. Попробуйте разные варианты редиректов, представленных ниже. Какой-то должен подойти.

КСТАТИ! Поделитесь в комментариях тем способом, который оказался рабочим у вас, если варианты из этой статьи вам не подошли. Спасибо!

Вариант 1 (работает для sprinthost.ru)

#RewriteEngine on (Если до этого по коду не включено)
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://SITE-NAME.ru/$1 [R=301,L]

Другой вариант редиректа (работает для webhost1.ru):

#RewriteEngine on (Если до этого по коду не включено)
RewriteCond %{ENV:HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Еще пример, в частности подходящий для хостинга mochahost

#RewriteEngine on (Если до этого по коду не включено)
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://SITE-NAME.ru/$1 [R,L]

Пример для хостинга godaddy

RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?SITE-NAME\.com
RewriteRule ^(.*)$ https://www.SITE-NAME.com/$1 [R,L]

5. Обновить кэш сайта

Готово. Настройка SSL-шифрования в системе MODX завершена.

5.1 не забудьте

Не забудьте внести правки в robots.txt (поменять дерективу sitemap), а также указать основное зеркало сайта в Яндекс- и Гугл-вебмастере.

Комментарии (8)

  1. Виктория 12 декабря 2018, 09:03 # 0
    Хорошая статья, все по делу, ничего лишнего. Спасибо большое)
    Сработал второй вариант редиректа
    1. Weltmeister 17 декабря 2019, 11:33 # 0
      Спасибо, благодаря статье настроил всё за 5 минут
      1. Дмитрий 02 апреля 2020, 22:47 # 0
        Благодарю! Помог 2-й вариант: Внести правки в core/config/config.inc.php
        1. Евгений 09 апреля 2020, 13:11 # 0
          Спасибо за статью. на хостинге nic.ru сработал первый вариант редиректа
          1. Mikhail Chernykh 29 июля 2020, 13:13 # 0
            beget — 1 вариант
            1. Максим 29 июля 2020, 14:52 # 0
              Добрый день. После перевода сайта на https при входе в админку по пути site.ru/manager перекидывает на site.ru/MODX_URL_SCHEMEsite.ru/manager/

              Если руками убрать лишнее (MODX_URL_SCHEMEsite.ru/), то входит нормально. Не подскажите, в чем может быть проблема?
              1. Danzel.Wach 09 марта 2021, 18:10 # 0
                Хостинг nic.ru сработал вариант в совокупности:
                1. Настройка сайта — https
                2. Корректировка конфигов из пункта 2.
                3. Корректировка .htaccess по варианту 1.
                1. Тест отработки цели заказа звонка! Не реагировать! 20 июля 2022, 16:16 # 0
                  Для старых версий MODX корректно. Для Revolution — мимо! Не находится server_protocol СОВСЕМ. Как будто и нет его.
                  *Комментарий будет опубликован после проверки модератором

                  Комментарии easyComm

                  Сергей 18 октября 2018, 19:56

                  На весь интернет по вопросу https modx revo - ноль полезной информации. И есть один совет для слишком крупных программистов.

                  Здесь всё очень просто, добавил в закладки. По возможности вернусь для пункта 5.1))

                  web-design.online 16 октября 2018, 13:05

                  Мега крутая статья. Всё по сути без лишнего хлама. Зашёл - 2 кнопки нажал и готово... До этого часа 2 искал в чем проблема. Автор спец. Респект!)

                  Виктор 29 марта 2018, 16:22

                  Спасибо за статью! Все четко и понятно)
                  для моего сайта сработал второй вариант в htaccess

                  Похожие статьи

                  Генератор настроек MIGX

                  Документация на русском по MODX MIGX

                  Подсказки по работе и заготовки для MiniShop2

                  Импорт и экспорт в MiniShop2. Реализация 1

                  pdoPage и getImageList - Постраничная навигация MIGX

                  Как включить HTTPS (SSL) в MODX - Подробная инструкция

                  Генерация YML для выгрузки в маркет

                  Примеры работы с API MODX

                  Расширение свойств товаров minishop2

                  Примеры выборки where, optionFilters, innerJoin

                  pThumb - ресайз изображений. Примеры использования.

                  Примеры использования

                  Сайт на обслуживании (выключить сайт)

                  Вывести getImageList только если он не пустой

                  Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

                  Добавить в письмо контактную информацию

                  Оформление и настройка easyComm. Комментарии и отзывы на сайте.

                  Поиск на сайте с пакетом SimpleSearch

                  Простая и симпатичная галерея fancybox

                  Вывод tv-параметров в формате -

                  Галерея. Вывести обложки альбомов и фотографии

                  Подсчет и вывод количества потомков ресурса в MODX

                  Отредактировать письмо о заказе - добавить ТВ поле, или что-то еще

                  Quip для MODX. Более рабочий вариант

                  pdoResources Заготовки для работы

                  Сниппет для вывода размера и расширения файла

                  Простой аудио-плеер HTML5

                  Вывести список всех опций MiniShop2

                  Изменить цену на товар в зависимости от количества при добавлении в корзину minishop2

                  Как контролировать кэш CSS и скриптов

                  Слайдер Slick slider в контенте ресурса

                  Подключить MODX в стороннем PHP файле

                  Простейшая авторизация

                  Красивое адаптивное меню под pdoMenu

                  Массово обновить ТВ, или другое поле через базу

                  Как создать ресурс процессором $modx->runProcessor('resource/create', $props)

                  Изменить формат номера заказа

                  Создать свою страницу в админке

                  Сообщение о том, что сайт использует Cookie

                  Получить grandparent. Вывести родитель родителя

                  Симпатичный список файлов, загружаемых к ресурсу через MIGX

                  Создать источник файлов

                  Установить шаблон по-умолчанию для новых, создаваемых ресурсов

                  Вывести все доступные плейсхолдеры

                  Отредактировать шаблон письма

                  Добавить скрипт перед тегом body

                  Общая сумма по каждому товару в корзине Minishop2

                  Создать раздел с паролем на сайте MODX

                  Что делать если ее приходит почта администратору

                  Фильтрация по TV параметрам в msProducts

                  Дата на русском

                  FontAwesome - часто используемые иконки для шаблонов MODX

                  Создать пакет с пользовательской таблицей

                  Заготовки для работы

                  Курсы валют с cbr.ru на PHP

                  Обязательный чекбокс при оформлении заказа

                  getResources заготовки

                  Загрузка сниппета после загрузки страницы через AjaxSnippet

                  Соответствие названия классов с названиями таблиц в MySQL

                  Баннеры с использованием BannerY

                  Разбить вывод pdoResources на несколько колонок (блоков)

                  Обработка остатков заказа в miniShop2

                  CSS для постраничной навигации pdoPage

                  Вывести время загрузки (формирования) страницы

                  Счетчик посещений и скачиваний для сортировки ресурсов

                  Расширить таблицу site_content (объект modResource) за 5 минут

                  Вырезать кавычки — фильтр-сниппет MODX

                  Обновить alias (псевдоним) у всех ресурсов

                  Динамическое поле emailSubject в FormIt

                  Бесплатная доставка от 5000 рублей в MiniShop2

                  Скрыть информацию о том, что сайт работает на MODX

                  Отсортировать ресурсы по количеству комментариев Quip MODx

                  Изменить цену на товар, если в корзине лежит товар из особой категории minishop2

                  Создать редирект через autoRedirector API

                  Вывести 404 ошибку по настройке TV MODX

                  Ответ для сервиса moneta.ru

                  Email сделать не обязательным полем

                  Как разместить исходный код сниппета на сайте, в документации

                  Ускорить установку MODX revo до пары кликов

                  Постраничная навигация — набор параметров и CSS PdoPage

                  Cортировать по списку id в pdoResources и pdoTools

                  Сделать поле размер обязательным

                  Не работает подгрузка товаров ajax mfilter2 на мобильном

                  Сделать все элементы статичными для Git и IDE

                  Кастомный чанк для AdminPanel

                  Настройка стилей для комментариев Tickets

                  Подключить текстовой редактор к доп. полям ресурса

                  Динамическая замена шаблона ресурса - плагин

                  Разместить корзину внутри блока с оформлением заказа

                  Вывести список всех родителей в ТВ поле ресурса

                  Плагин для формирования замороженных URL с редиректом

                  Вложенные условия в xPDO MODX

                  Приветственный экран / заглушка на сайт

                  Вывести список всех емэйлов miniShop2

                  Если getParentIds не работает в плагине

                  Как получить данные пользователя сразу после авторизации через API

                  xPDO Выборка из одной таблицы с зацепкой значения из другой

                  Контролировать кэширование файлов CSS и JS MiniShop2

                  Не приходят / не отправляются письма - в чем причина?

                  Кэширование в MODX: использование $modx->cacheManager

                  Наш сайт использует куки, нажмите «ОК» если вы не против
                  OK