MODX https перевод сайта на защищенный протокол. Modx переход на https


MODx переход с http на https

Учитывая актуальность темы, а также повышенный интерес со стороны читателей блога и полученных сообщений по обратной связи, решил написать полноценную инструкцию по правильной настройке перехода сайта с протокола http на https. Инструкция будет полезна для владельцев сайтов сделанных на движке MODx редакции Evolution и Revolution.

Инструкция по переходу с протокола http на https:

Подводные камни при переходе с http на https.

P.S. Список подводных камней буду расширять по мере их появлений или ваших обращений.

Статьи по теме:

Написать комментарий

Поля помеченные * обязательны для заполнения.

Заказать звонок

© 2015 - Все права защищены. Копирование материалов запрещено. - modx-evo.ru

modx-evo.ru

Настройка HTTPS соединения в MODX Revolution

Не так давно начал переводить сайты, в том числе и на MODX Revolution, на работу с HTTPS протоколом. Сейчас, с моей точки зрения, самое время. Надо было сразу написать инструкцию по переводу сайтов на HTTPS протокол, но подобных постов и так много, поэтому решил не плодить контент. Пока руки не дошли до перевода на HTTPS сайтов на sweb.

Думаю, стоит начать с самой процедуры перевода сайтов на защищенное соединение, после чего коснусь тех проблем, с которыми столкнулся на sweb. Сначала нам надо получить сертификаты, я их генерирую через zerossl.com, который в свою очередь генерирует их через Let’s Encrypt. У данного способа нет никаких особых преимуществ, единственное все можно сделать онлайн. Получив сертификаты привязываем к нужному нам домену, в случае с sweb это делается через загрузку сертификатов в административную панель хостинга во вкладке SSL.

Дальше для перевода самого MODX Revolution на защищенное HTTPS соединение необходимо включить две системные настройки: В разделе System and Server (Система и Сервер) параметру server_protocol необходимо задать значение https, тем самым мы сообщим системе управления, что мы хотим использовать HTTPS в качестве основного протокола на сервере. В разделе Site (Сайт) параметру link_tag_scheme необходимо присвоить значение 1, вместо значения -1, тем самым мы указываем MODX, что все ссылки необходимо генерировать с указанием схемы https (то есть использовать https:// в начале формы записи URL). После этого достаточно вручную очистить файловый кеш и наш сайт на MODX Revolution начнет корректно обрабатывать https:// обращения.

Но для sweb хостинга это оказалось не совсем так. На нем MODX категорически отказывался определять HTTPS подключение. Причина оказалась в том, что для определения защищенного подключения MODX использует серверную переменную $_SERVER['HTTPS'] (кому интересно, процедура проверки находится в файле config.php). Однако в случае с sweb данная переменная сервера отсутствовала как класс и вместо нее присутствовала переменная $_SERVER['HTTP_HTTPS']. Как я понял, это связано с некоторыми особенностями настройки связки Apache+nginx, но проверить не смог, так как хостинг шаред. В общем решение данной проблемы в итоге нашлось, через объявление переменной HTTPS в .htaccess, при условии, что она может быть инициализирована. Данное решение подходит нам идеально, так как не надо менять код самой CMS.

Итак, вначале .htaccess нам необходимо добавить:

SetEnvIf HTTPS on HTTPS=on

Все, после этого мы получаем работающее HTTPS соединение на хостинге компании sweb.

UPDATE: если вы столкнулись с проблемой, что в .htaccess не работает дефолтная конструкция, которая переводит все подключения к серверу на защищенное соединение:

RewriteCond %{SERVER_PORT} !^443 RewriteRule (.*) https://www.example.com/$1 [R=301,L]

, то замените ее на следующую:

RewriteCond %{ENV:HTTPS} !on [NC] RewriteRule (.*) https://www.example.com/$1 [R=301,L]

Просмотров: 1159

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

« Работа с getCacheДобавляем косую черту в конец URL »

www.devmarks.ru

MODX https перевод сайта на защищенный протокол

Для того что бы сайт на MODX Revolution работал по защищенному протоколу необходимо для начала зайти в системные настройки сайта в фильтре параметров core ввести http и найденный параметр заменить на https

Далее в фильтре системных настроек вводим

link_tag_scheme

в найденном параметре по умолчанию у нас стоит -1 нам необходимо поставить 1 для того что бы сайт работал по защищенном протоколу https.

Уже на данном этапе сайт успешно работает по защищенному протоколу. Но если ввести адрес сайта с http он так же будет доступен. Для того что бы сайт был доступен только по защищенном протоколу нам необходимо настроить редирект в файле .htaccess

Для этого откроем файл .htaccess и расскомментируем следующие строчки:

RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^modx\.cc [NC] RewriteRule (.*) <a href="https://subgid.com/https://subgid.com/$1">https://modx.cc/$1</a> [R=301,L]

У нас будет происходить редирект с домена с www на домен без www

И выше добавим следующий редирект который перенаправит с адреса http на адрес https

RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Возможно на вашем хостинге данный редирект не сработает привожу еще несколько вариантов

Вариант 2

RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Вариант 3

RewriteCond %{ENV:HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вариант 4

RewriteCond %{HTTP:X-HTTPS} !1 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Вариант 5

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"' RewriteRule ^(.*)$ <a href="https://www.domain.com/https://www.domain.com/$1">https://www.domain.com/https://www.domain.com/$1</a> [L] #не забудьте заменить на ваш домен

Вариант 6

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Вариант 7

RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

После всего проделанного ваш сайт будет доступен исключительно по защищенному протоколу. Можно смело добавлять его в ЯВ и по истечении недели двух полностью будет переиндексирован. Если на сайте есть Тиц то он отвалится, а после очередного апдейта вернется если на то будет воля великого Яндекса.

P.S. На хостинге Beget можно бесплатно получить сертификат Let's Encrypt для перехода на https.

www.modx.cc

MODX https настраиваем сайт на работу по защищенному протоколу

Если вы решили настроить сайт на правильную работу по безопасному протоколу https, то необходимо провести некоторые настройки системы и файла «.htaccess». Для начала перейдем в системные настройки Modx, для более удобного поиска - в фильтре параметров вводим «http», затем найденный параметр заменяем с «http» на «https».

Теперь снова обращаемся к фильтру системных настроек и вводим «link_tag_scheme», данная настройка Modx отвечает за схему генерации URL тега .

В найденном параметре согласно стандартным настройкам Modx Revolution должно стоять значение «-1» (URL-адрес является относительным к site_url). Вместо значения по умолчанию мы прописываем значение «1», что будет сообщать системе, что ссылки на сайте должны генерироваться с защищенным протоколом https.

Настройка .htaccess для Modx Revolution

После первых двух настроек системы сайт уже начнет работу по защищенному протоколу, но страницы сайта будут доступны и по обычному протоколу - с http. Чтобы сайт был доступен исключительно по безопасному протоколу https - нам нужно настроить автоматический редирект, при помощи файла «.htaccess».

Переходим через панель управления сайтом или FTP-клиент в корневую папку сайта, далее открываем для редактирования файл «.htaccess» и убираем символы комментирования со следующих строчек:

Прописываем вместо домена «example-domain-please-change.com» адрес своего сайта и не забываем указать вместо «http» защищенный протокол «https».

Теперь у нас настроен автоматический редирект с домена с www на домен без www.

Над данными строками необходимо добавить следующие строки для редиректа, которые будут перенаправлять страницы сайта с адреса http на аналогичный адрес, но с добавлением https.

Для примера, в случае с нашим сайтом, который кстати находится на хостинге Timeweb, актуальны следующие строки:

Варианты настройки https протокола для разных хостинг-компаний

В зависимости от хостинга может работать один или несколько вариантов настройки редиректов. Чтобы определить какой именно подходит для вашего хостинга — можно воспользоваться либо инструкцией по настройке редиректа с http на https, которую предлагает хостинг-компания либо вручную попробовать предложенные варианты, пока не найдете подходящий вам:

Вариант 2

Вариант 3

Вариант 4

Не забывайте вместо «domain.com» прописывать ваш домен.

Вариант 5

Вариант 6

Вариант 7

После правильно прописанных настроек ваш сайт будет доступен исключительно по защищенному протоколу, это можно легко проверить, зайдя на любую страницу сайта и попробовав открыть данную страницу по обычному протоколу — должен произойти редирект на эту же самую страницу, но с https. Теперь, когда мы все правильно настроили — можно добавлять адрес сайта с https в Яндекс вебмастер и по истечении некоторого времени сайт будет полностью переиндексирован. Если у вас было значение Тиц, то он упадет до 0, а после нескольких апдейтов Яндекса вероятнее всего снова вернется к прежнему значению.

Также следует отметить, что на некоторые хостинги предлагают временные бесплатные SSL сертификаты «Let's Encrypt», которые позволяют настроить на вашем сайте https. Данный сертификат вполне подойдет большинству сайтов, если же на сайте присутствует онлайн-оплата — то предпочтение все-таки следует отдавать платным SSL сертификатам, которые имеют более «авторитетные» подписи.

evosites.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта