КАК НАЧАТЬ и РАЗВИВАТЬ СВОЙ НЕБОЛЬШОЙ БИЗНЕС с БОЛЬШОЙ ПРИБЫЛЬЮ
Это полная пошаговая инструкция. Возможно излишне подробная... если вы не новичок.
Но меня достали заумные «ну это и так понятно» многих авторов подобных статей.
Так что буду рассказывать и показывать так, чтобы на самом деле было понятно. Любому.
И не было по ходу проблем.
Замечу, что не претендую на всеобширность и охват всех возможных ситуаций. Распишу подробно ЧТО и КАК делал я при переходе на https.
Поехали
Содержание
Я выбрал вариант с бесплатным SSL сертификатом от некоммерческой организации Let's Encrypt. Сертификаты Let’s Encrypt распознаются как подтвержденные во всех основных браузерах. Единственная проблема с этими сертификатами состоит в том, что их нужно продлять каждые три месяца. Но:
Зайти в раздел «Домены»
и выбрать напротив домена «Управление SSL сертификатами»
В открывшемся окне перейти на вкладку «Бесплатный сертификат» и нажать «Установить»
После отправки заказа SSL-сертификата вы получите на контактный email письмо о подаче заявки на выпуск SSL, а затем еще одно письмо о завершении его установки.
В момент установки для домена будет автоматически изменена A-запись, если домен работает на DNS от Beget.ru.
Если вы используете DNS не бегета, то необходимо самостоятельно прописать на них (DNS) указанный в письме IP-адрес в качестве А-записи для домена.
Как узнать, чей DNS ? Спросите у техподдержки бегета. Если регистратор не Бегет, то посмотрите в интерфейсе регистратора.
Если там в названии DNS-сервера присутствует beget, то DNS у вас бегетовский и А-запись будет прописана автоматически.
DNS записи обычно обновляются в течение 10-15 минут.
Как только вы установите таким образом сертификат SSL, ваш сайт будет открываться как по http, так и по https. Чтобы сайт открывался чисто по https, вам нужно будет настроить переадресацию.
И 1 предупреждение. Ждите, пока хостер не пришлет сообщение, что всё, сертификат SSL подключен. Иначе, если поторопитесь, и не дожидаясь сообщения станете менять адреса на сайте в меню Настройки-Общее (как указано в этой статье ниже), то увидите вот это
Это тоже, конечно, не катастрофа. Подождите, пока не придет письмо с Бегета, что сертификат установлен и обновите страницу по F5.
Во время перехода на https теоретически могут быть разные казусы и сложности. Поэтому сделать бэкап сайта нужно обязательно!
Бэкапим базу данных и файлы сайта. Лучше делать это через панель хостинга.
В крайнем (в крайнем!) случае, даже если вы забыли забэкапиться, а проблема взяла и случилась — хостинг Beget хранит 12 копий вашего сайта за двухнедельный период. Всегда можете сделать восстановление через сохраненную в админке копию. Но все-таки лучше не забывать бекапиться непосредственно перед тем как перейти на https. Ведь хостинг делает сохраненки не каждый день, а примерно через день. Так что может оказаться, что всё, что вы наработали за последние 2 дня — пропадет.
Заходим в вертикальное меню блога Настройки > Общие и меняем в этих двух полях в адресе сайта протокол http на https:
Не забываем нажать на кнопку Сохранить изменения
Вас тут же «выкинет» из админки и вы увидите это
Не пугаемся. Это нормально. Входите заново с теми же логином и паролем. И спокойно продолжайте настройку.
В файл wp-config.php (находится в корневой папке блога) перед строками
/** Инициализирует переменные WordPress и подключает файлы. */ require_once(ABSPATH . 'wp-settings.php');
вставляем код
/** 2018-11-07 код для перехода на https **/ define('WP_HOME', 'https://sidorevich.ru'); define('WP_SITEURL', 'https://sidorevich.ru'); define('FORCE_SSL_ADMIN', true); if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on'; /** /конец кода для перехода на https **/
Вместо sidorevich.ru вбиваете свой сайт, конечно
Если веб-сервер вашего хостера — Apache, то в файл .htaccess (лежит в корневом каталоге блога) под строку
RewriteEngine On
вставьте код
RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Если же сервер Nginx, то вставляйте код
server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://$server_name$request_uri; }
Какой сервер — уточните в техподдержке вашего хостера. На Бегете — Apache.
Или просто спросите в техподдержке, какой код ставить в .htaccess.
После этого проверьте результат — введите в адресную строку браузера URL вашего сайта с http:// Если всё работает правильно, то вас должно перекинуть на https://ваш_сайт.
Всё. Теперь ваш сайт открывается на https, но это ещё не победа
Ссылки-то в изображениях указаны как http —
А изображений на вашем сайте десятки или сотни. Менять во всех руками — нереально.
Плюс на сайте у вас могут быть внутренние ссылки с http. Всё это тоже нужно будет менять.
1. Не лезьте в базу данных напрямую с SQL-запросами, как часто советуют. Там сериализированные массивы, длины строк которых менять напрямую рисковано. Механизм объяснять не буду, но результат может быть такой, что сайт придется заново переустанавливать.
2. Не применяйте плагины которые переводят абсолютные ссылки в относительные. Удивительно, но даже порой техподдержка хостинга советует применять такие плагины. Хотя чего удивительного, там тоже люди работают. Так вот, не знаю как для других CMS, но в WordPress это делать очень нежелательно. Вот что об этом написано в официальном документе WordPress
WordPress stores absolute URLs in the database. Relative URLs are not used for a variety of reasons. Dynamically generated websites need permanent URLs (permalinks), so absolute URIs make more sense. Ну и далее целая «портянка» причин, озаглавленная Why relative URLs are not good #
3. При работе с плагином Better Search Replace не пытайтесь заменять выражение src="http:// на src="https:// как советуют в некоторых статьях. Я попробовал и выяснилось, что если некоторые изображения на вашем блоге сохранены в кириллических названиях (т.е. названы по русски), то с этими изображениями замены не произойдет. Какое выражение нужно ставить, чтобы всё было ОК, я покажу далее.
4. Не делайте массовую замену в других таблицах базы кроме wp_posts. Пишут, что дескать нужно еще в wp_options замену делать. Не нужно! Я пробовал. Слетели настройки темы. Далее я покажу как сделать правильно.
Вобщем, правильным будет делать замены с помощью плагина Better Search Replace.
Устанавливайте его.
После установки в меню Инструменты появится строка Better Search Replace
Кликайте и увидите окно
Теперь вбейте в эту форму такие данные
Точно так. Только вместо sidorevich.ru ваш сайт.
В Выбор таблиц выделяете только wp_posts.
Если когда-то ранее вы для безопасности заморачивались настолько, что сменили названия таблиц в базе данных, то название этой таблицы у вас будет своё, конечно.
В «Холостой запуск (без замены)» галочку не снимайте. Это будет тестовый запуск. Галочку оставьте и нажмите Запустить Поиск.
Если же всё ОК и плагин пишет, что проверил 1 таблицу, нашел столько-то ячеек и ни в одной замены не сделал, то так и должно быть.
Вот тогда снимайте галочку с пункта Холостой запуск и снова жмите на Запустить Поиск/Замену.
После этого проверьте — появился ли на сайте значок замочка или там «i» в кружочке.
Если замочек появился и при нажатии на него видите, что всё ОК
то значит вы победили.
Если по прежнему "i" в кружочке, то нужно найти, где ещё остались изображения с http
В браузере Chrome откройте главную страницу сайта, который переводите на https и нажмите комбинацию клавиш Ctrl+Shift+J
Откроется консоль ошибок
Нас интересует именно Mixed Content.
Посмотрите, какие там указаны файлы и найдите их на сайте. Сделайте замену.
В данном случае, мы видим файл http://sidorevich.ru/wp-content/uploads/2018/10/MyPhoto_site_norm.jpg . Можно просто кликнуть по ссылке и посмотреть, ЧТО это за изображение. И либо сразу сообразите, где оно у вас применено, либо в меню Медиафайлы откроете это изображение, найдя его по дате (например, здесь это было 2018 октябрь) и там увидите, где оно на сайте. Если с ходу не видно, то скорее всего вы применили его в виджетах. Идите в меню Внешний вид — Виджеты и смотрите, в каком виджете стоит ссылка на это изображение. У меня это был виджет Об авторе.
Зашел в виджет. Поправил http на https и после этого проверил результат.
Всё. Переход совершили. Чтобы добиться этого, я день просидел. В итоге даже пришлось переустанавливать блог. Всё из-за моего доверия к авторам в интернете. А вот когда переустановил блог и как бы заново озадачившись вопросом — как перейти на https — сделал переход вот прямо по пунктам этой статьи, то на всё про всё понадобилось примерно 3 минуты (!)
Видео у вас отключатся. В постах будут «дыры». Пустые места вместо видео.
Не проблема. В том же плагине Better Search Replace так же, как и было описано выше, вбиваем замену с
src="http://www.youtube.com на src="https://www.youtube.com
и заменяем только в таблице wp_posts
А если у вас в блоге есть видео с Vimeo, то еще заменяем
src="http://player.vimeo.com на src="https://player.vimeo.com
Тоже только в wp_posts.
Можно, конечно, сразу было сделать такую замену
src="http:// на src="https://
Всё таки в iframe видео русских букв точно нет и всё должно пройти гладко. Но я осторожничаю. Вы — как хотите.
Не забываем про поисковики, а то они забудут про вас.
Заходите в свой веб-мастер Яндекс.
Далее нужно перейти в раздел Индексирование – Переезд сайта. И выставляем чекбокс (галочку) напротив «Добавить HTTPS», после этого нажимаем «Сохранить».
Некоторые пишут, что это нужно делать сразу после установки SSL сертификата и потом нужно ничего не делать, пока Яндекс не проиндексирует. Пару недель, мол, подождите...
Это ерунда. Сам Яндекс отвечает на вопрос Стоит ли ждать, пока сайт HTTPS проиндексируется перед тем, как начинать переезд? так —
Нет, переезд можно начинать в любой момент.
Ещё некоторые пишут, что нужно в файле robots.txt прописать директиву Host. Это тоже устарело. Не нужно это делать. Яндекс упразднил эту директиву.
Делаем две вещи:
1. Проверяем, чтобы в карте сайта .xml присутствовал только протокол https.
У меня карту сайта строит плагин Google XML Sitemaps поэтому, все прошло чисто. Плагин заменил все http ссылки в карте на https. Не забудьте проверить свою карту сайта.
Введите в адресную строку браузера https://ваш_сайт/sitemap.xml и посмотрите.
2. После этого откройте в notepad++ файл robots.txt и в адресе карты сайта замените http на https
Гугл вообще загадочная штука со странной логикой. Поэтому всё зафиксировал в картинках с пояснениями. А чтобы не растягивать страницу, поместил все в «аккордеон».
Сначала перейдите на страницу https://www.google.com/webmasters/tools/home и далее смотрите
Кликаем тут
и вбиваем название своей карты, то есть sitemap.xml . Жмем на «Отправить».
Скажите пжл, Вы ранее не ответили — зачем вставлять код в файл wp-config.php и можно ли его удалить после перехода на https? У нас же есть редирект в htacess, а этот код для чего?
Пробовал убирать — переадресация перестает работать.
Скажите пжл, зачем вставлять код в файл wp-config.php и можно ли его удалить после перехода на https? У нас же есть редирект в htacess, а этот код для чего?
Добрый день. А что делать с внешними ссылками на другие сайты по HTTP протоколу, который стоят в статьях?
Ничего. Либо они уже на 301 редиректе, либо будут давать 404. Если 404, то убейте или замените ссылку.
Да, и можно ли после всех замен этот плагин Better Search Replace удалить?
Конечно
Огромное спасибо за адекватную статью! Сам люблю четкость и ясность мысли и у вас это реально понятный мануал, не то что по интернету чушь собачья по кускам выдранная из других статей. Вот собираюсь тоже переезжать. Скажите, достаточно лишь wp_posts в плагине на замену https указать? Вижу там wp_comments (у меня в комментах стоят ссылки на сайты авторов), также wp_subscribe reloaded (и этот плагин у меня стоит об оповещениях в комментах), смело ли можно эти и другие таблицы на замену https пробовать?
Я бы не рубил так сплеча. Сначала в wp_posts меняйте. Проверяйте. Если зеленый замочек (или что там в вашем браузере о том что все гуд) появился, то дальше не нужно лопатить. Думаю так.
Спасибо, за статью все получилось, правда один сайт не хотел в яндекс добавляться но разобрался что дело было в плагине кеша, отчистил кеш и сайт добавился в переезд. Яндекс говорит что надо вставить метатег <meta name="referrer" content="origin"/> у вас в статье этого нет, стоит его добавлять или нет?
Не вставлял и не видел такого. Киньте ссылку.
Что касается плагинов кэша, то это адский ад. Я их отключаю, когда хоть что-то начинаю делать с сайтом. Если не вспомнишь, что дело может быть в нем, то весь мозг вынесет.
Вот здесь в шаге 2
yandex.ru/support/webmast...ror-is-not-https
Кстати у кого VDS и установлен ISPmanager то настроить редирект можно просто поставив "галочку" в настройках домена не внося изменения в файлы .htaccess и wp-config.php
Спасибо за подробную инструкцию! Сделал по написанному и перевел пока малопосещаемый сайт без проблем. Буду смотреть, как отразится на трафике. Если все нормально, тогда возьмусь за более крупные проекты.
Яндекс вроде бы сейчас пошел по пути гугла, можно мол добавлять в вебмастер другой сайт с https. Не знаю, работает это или нет.
Плохо, что вашего сайта нет в топе гугла, всякая дрянь в выдаче. Даже сайты на http рассказывают, как они переходили на https (смешно). Умею гуглить, ваш сайт нашел через инструменты: показать за год. Удачи!