web-rocket.by
Перевод (переезд) MODX Revolution c http на https

Перевод (переезд) MODX Revolution c http на https

Как выполнить переезд (перевод) сайта на Modx Revolution для работы с протоколом https? Как добавить зеленый замок сайту и выбрать сертификат SSL — все это можно узнать в этой статье.

Как перевести сайт на modx на https


Доброго времени суток, я думаю уже всем стало ясно, что перевод сайта на защищенный протокол – это жизненная необходимость. Для тех, кто еще думает: “Кого мне бояться, у меня секретов нет, карточками на сайте никто не платит” – это нужно не только для интернет магазинов, а в целом для ВСЕХ сайтов. Гугл будет помечать сайты без HTTPS как небезопасные и тем самым убивать ваших клиентов.

Переходим к пункту 2 – «Что нам нужно, чтобы modx revolution и админка заработала по https протоколу?»
  1. Купить SSL сертификат (как выбрать сертификат SSL читаем тут);
  2. Прикрутить его на сервак;
  3. Настроить редиректы, указать в Вебматере Яндекса и в Гугл Консоли, что вы переехали;
  4. Все проверить.
1 и 2 пункт пропустим, если все-таки что-то не ясно –пишите/звоните, помогу.
Теперь технический момент, что нам нужно, чтобы в админке modx и на сайте появился зеленый замок?

Настройки MODX для работы с протоколом https


  1. Тут все просто, настройка только одна. Заходим в «Системные настройки» — переходим в ветку Система и сервер, находим тип сервера и меняем протокол на https Тип сервера — server_protocol — https
  2. И все там же заходим в системные настройки core — сайт и выставляем для параметра Схема URL link_tag_scheme значение https. Ссылки будут генерироваться с игнорированием base href и начинаться с https.
  3. Чистим кэш и идем проверять. Для этого явно указываем протокол: https://ваш-домен.by
Все должно выглядеть в точности, как и без протокола https. Ничего не должно ломаться, ехать, не отображаться и т.д.Для дополнительной проверки на странице нажмемF12. Перейдем во вкладку Сonsole. Тут не должно быть ошибок вида:
Mixed Content: The page at 'URL' was loaded ober HTTPS/ but request an insecur script 'URL'. This request has been blocked the content must be served over HTTPS

Если такая хрень появилась — ВАМ (или лучше мне) нужно заменить все http-ссылки на https. Для того, чтобы избежать появления смешанного содержимого при переходе на https, рекомендуем изначально все ссылки на стили, скрипты и картинки внутри сайта оформлять как динамические. Тогда при переходе на https-соединение, они автоматически будут нормально тянуться. 

Настройки .htaccess MODX для работы с протоколом https


Открываем .htaccess и добавляем в него следующие строки:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]


Настройки NGINX для работы с протоколом https


Если на вашем веб-сервере испольуется nginx, в конфигурационный файл нужно добавить следующие строчки:
if ($scheme = 'http') {
    return    301    https://$host$request_uri;
}

Редирект на https — плагин на событие OnHandleRequest


Если не желаете редактировать файлы и вы чувствуйте в себе прилив сил + есть понимание, что такое плагин, то можно воспользоваться решением от Ильи Уткина, активировав плагин на событие OnHandleRequest:
<?php
if ($modx->event->name != "OnHandleRequest") {return;}
 
$uri = $_SERVER['REQUEST_URI'];
if ($uri == '/robots.txt') return;
$url = $_SERVER['HTTP_HOST'];
$site_url = 'site.ru'; // заменить на свой домен
if ($url != $site_url || !$_SERVER['HTTPS']) {
    $modx->sendRedirect('https://'.$site_url.$uri, array(
        'responseCode' => 'HTTP/1.1 301 Moved Permanently')
    );
}


После этих манипуляций ваш сайт при обращении к нему по протоколу http должен автоматически редиректить пользователя на https (проверьте для всех страниц, протестируйте формы отправки, если такое используется). После этого указываем Яше, что вы переехали:
Для Яндекс Вебмастер выполним следующее:

 

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

    Изложить свои мысли