Перевод сайта MODX Revolution с http на https
1. Установите в настройках системы MODX в качестве значения параметра server_protocol значение https.
2. Закомментируйте в .htaccess эти правила:
# Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
#
# or for the opposite domain.com -> www.domain.com use the following
# DO NOT USE BOTH
#
#RewriteCond %{HTTP_HOST} !^$
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteCond %{HTTP_HOST} (.+)$
#RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
3. Настроите сайт так, чтобы он некоторое время был доступен как по протоколу http, так и по https.
Для этого необходимо создать сниппет siteUrl (зависит от хостинга):
<?php
if ($_SERVER['HTTP_X_FORWARDED_PROTO']=='http') {
return 'http://mydomain.ru/';
} else {
return 'https:// mydomain.ru/';
}
Установите данный сниппет в качестве значения атрибута href элемента base (убрав пробелы):
<base href="[ [ !siteUrl ] ]">
Используя этот шаг можно проверить, корректно ли у вас отображается сайт по протоколу https. Если вы используете абсолютные ссылки с использованием протокола, то их необходимо исправить на относительные.
4. Настройте канонические URL, ведущие на https версию сайта.
5. Добавьте в robots.txt основное зеркало (для Яндекса):
Host: https://mydomain.ru
6. Добавить в инструментах Google для веб-мастеров сайт с протоколом https.
После этого у вас в Search Console будут доступны 2 сайта (с протоколом http и https). Google, при наличии сайта в двух версиях, будет показывать в выдаче именно его https-версию.
Для более быстрого индексирования предоставить файл sitemap.xml.
7. В Яндекс Вебмастер на странице Переезд сайта (Индексирование->Переезд сайта) установите галочку «Добавить https» и нажмите на кнопку «Сохранить».
И ждём, пока Яндекс склеит зеркала. Этот момент может длиться от нескольких недель до нескольких месяцев.
При этом Яндекс не рекомендует использовать редирект. Иначе страницы могут выпасть из выдачи. Т.е. пока Яндекс не склеит зеркала, у вас сайт должен быть доступен как по http, так и по https.
Источник: yandex.ru/support/webmaster-troubleshooting/mirrors/change-protocol.xml
8. После склейки Яндексом добавьте редирект в .htaccess (данные строчки зависят от хостинга):
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteCond %{REQUEST_URI} !robots.txt
RewriteRule ^(.*)$ https://mydomain.ru/$1 [R=301,L]
SetEnvIf X-Forwarded-Proto https HTTPS=on
9. В настройки контекста web (при необходимости) добавьте параметр site_url со значением:
https://mydomain.ru/
10. Установите данный параметр в качестве значения атрибута href элемента base (убрав пробелы):
<base href="[ [ ++site_url ] ]">