Протокол HTTPS. Как настроить и перевести сайт на https на примере WordPRess. Wordpress https
Как перевести WordPress на HTTPS: просо о сложном
Сегодня в интернете наблюдаются тенденции к безопасности личных данных, и в связи с этим стал популярен протокол HTTPS, который можно получить, установив на свой сайт SSL-сертификат. Современные поисковые алгоритмы большое внимание уделяют наличию сертификата у сайта, а также новые версии браузеров предупреждают пользователей о небезопасности соединения при посещении сайта на HTTP. Поэтому перейти на HTTPS рано или поздно придётся каждому.
Перевод сайта на HTTPS – это задача, требующая определённых действий. В этой статье я расскажу о том, как перевести WordPress на HTTPS. Пошаговая инструкция позволит сохранить все ссылки при переезде, а также не потерять прогресса в продвижении в поисковых системах.
Итак, инструкция состоит из нескольких шагов.
Получение сертификата
Для того, чтобы сайта открывался по HTTPS необходимо приобрести SSL сертификат. Существует три вида сертификатов:
- Domain Validation (DV) – подходит для простых сайтов вроде блогов, принадлежащих частным лицам.
- Organization Validation (OV) – такой сертификат следует приобрести для сайтов, которые принадлежат юридическим лицами, то есть организациям.
- Extendet Validation (EV) – этот сертификат необходим для сайтов, работающих с деньгами непосредственно – банки и платёжные системы.
Сегодня почти все хостинги позволяют купить сертификат в прямо панели управления, а также произвести его установку на домен. Замечу, что хостинг Beget, которым пользуюсь я, даёт возможность получать SSL-сертификат бесплатно на неограниченное количество доменов, на неограниченное время.
Я не стану рассказывать подробно о том, как установить сертификат, так как у каждого хостинга процедура будет отличаться. В крайнем случае, если возникнут вопросы, вы сможете обратиться в службу поддержки хостинга.
Итак, перед тем, как перевести WordPress на HTTPS, приобретите SSL-сертификат на хостинге и установите его на домен.
Перенаправление на HTTPS
После успешной установки SSL сертификата на ваш домен, сайт должен открываться по двум адресам:
http://example.ru и https://example.ru
http://example.ru и https://example.ru |
Однако, это не правильно. Необходимо, чтобы у сайта был только один адрес, тот, который с HTTPS. Для этого нужно сделать редирект 301 с HTTP на HTTPS, то есть установить вечное перенаправление.
Чтобы это сделать, откройте в корневой папке сайта файл .htaccess и в самом начале, пред всем, что там уже написано, внесите эти строки:
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] |
После этого попробуйте перейти на ваш сайт с HTTP. Если вы всё сделали правильно, то вас должно перекинуть на HTTPS. Обратите также внимание на то, что перенаправление должно работать не только на главной странице, но и на всех остальных. Например, переход по адресам:
http://example.ru/post или http://example.ru/category/post
http://example.ru/post или http://example.ru/category/post |
должен перевести на:
https://example.ru/post или https://example.ru/category/post
https://example.ru/post или https://example.ru/category/post |
Установите редирект с HTTP на HTTPS таким образом, чтобы перенаправление на HTTPS осуществлялось с любого адреса с HTTP.
Изменение ссылок
Сейчас будет веселье!
Если после описанных выше действий, вы при переходе на ваш сайт видите зелёный замочек в адресной строке, то вам удалось перевести WordPress на HTTPS и данный шаг можно пропустить и сразу приступать к следующему.
Если замочек не зелёный, то на вашем сайте есть элементы, которые ссылаются на HTTP и нарушают зашифрованную передачу данных. Это могут быть изображения, которые остались со старыми ссылками, счётчики, проставленные вручную какие-либо ссылки. В таком случае вам нужно проделать этот шаг.
Чтобы перевести все имеющиеся ссылки на сайте на HTTPS, проделайте операцию поиска и замены в базе данных. Самый простой способ – это скачать базу данных на свой компьютер. Для этого откройте базу через приложение PHPMyAdmin на вашем хостинге и там перейдите во вкладку «Экспорт». Нажмите кнопку «Вперёд» и скачайте базу данных на свой компьютер.
На компьютере создайте копию файла базы данных и работайте в ней (чтобы ничего не испортить). Откройте файл баз через текстовый редактор, например, через NotePad++, нажмите комбинацию клавиш Ctrl+F и перейдите во вкладку «Заменить».
В поле «Найти» запишите http:// а в поле «Заменить» — https:// и затем нажмите кнопку «Заменить все».
В результате этой операции в базе данных будут заменены все ссылки, имеющие в своём составе http://
Теперь нужно загрузить эту обновлённую базу обратно. Для этого в том же приложении PHPMyAdmin перейдите во вкладку «Импорт» и, нажав на кнопку «Выберите файл» укажите на обновлённый файл базы данных на вашем компьютере. После этого нажмите на кнопку «Вперёд» (внизу) и начнётся загрузка новой базы на сайт.
Конечно же, если вы на сайте делаете ссылки на другие сайты, которые работают по HTTP, после данной операции они перестанут работать (я имею в виду ссылки). Вам придётся вручную исправлять их обратно на HTTP. Но таких ссылок на сайте мало, так как сегодня большинство сайтов уже перешло на HTTPS. При этом замочек не должен иметь какое-либо предупреждение об опасности соединения.
После успешной загрузки базы данных снова проверьте ваш сайт. Если при переходе на него замочек около адреса всё равно не зелёный, то очистите кеш браузера. Если и после этого он не зелёный, то перейдите в консоли WordPress в пункт «Внешний вид», подпункт «Виджеты» и просмотрите все виджеты «Текст». Возможно, в них спрятаны какие-либо ссылки с HTTP. Чтобы перевести WordPress на HTTPS окончательно, их тоже необходимо исправить.
После этого снова проверьте сайт с очисткой кеша браузера – стал ли замочек зелёным. В большинстве случаев уже всё успешно. Однако в частных ситуациях бывает, что и это не всё, то есть, остались ещё ссылки с HTTP.
Чтобы узнать, какие ещё остались ссылки с HTTP, откройте исходный код сайта с браузере (через правый клик мышки) и поищите (через сочетание клавиш CTRL+F) по запросу http:// Вы увидите все имеющиеся ссылки с таким протоколом. Останется их только найти в файлах сайта и исправить.
Чтобы перевести WordPress на HTTPS исправьте имеющиеся на сайте ссылки с http:// на https:// с помощью функции поиска и замены в базе данных, а также проверьте виджеты «Текст».
Настройка индексации в поисковиках
Если вы прошли три шага, описанных выше и видите при переходе на сайт зелёный замочек в адресной строке, а также у вас исправно работает редирект, значит вам удалось перевести WordPress на HTTPS. Осталось настроить всё это дело в поисковых системах, чтобы не потерять продвижение.
Для начала в корневой папке сайта откройте файл robots.txt и измените в нём директивы Host и Sitemap. В обоих исправьте адреса на HTTPS.
Host: http://example.ru Sitemap: https:// example.ru/sitemap.xml
Host: http://example.ru Sitemap: https:// example.ru/sitemap.xml |
Затем необходимо перевести сайт на HTTPS в Яндексе. Перейдите в кабинет вебмастера Яндекса, откройте в нём ваш сайт, и попадите в раздел «Индексирование» и подраздел «Переезд сайта». Установите здесь галочку на «Добавить HTTPS» и потом нажмите кнопку «Сохранить».
Яндексу нужно будет несколько недель, чтобы полностью перевести сайт на HTTPS.
Затем нужно перевести сайт на HTTPS в Google. Тут по-другому. Перейдите в кабинет вебмастера Google и добавьте туда ваш сайт с HTTPS. По мере индексации, на которую уйдёт несколько недель, поисковик поймёт, какой сайт основной и начнёт показывать в поиске его.
wp-system.ru
Как настроить HTTPS для WordPress
Если вы серьезно относитесь к безопасности вашего сайта и к данным ваших посетителей, то вам следует перейти на защищенный протокол HTTPS. В данной статье мы подробно рассмотрим процесс создания и подписания SSL сертификата и подключение его к сайту на WordPress.
Что такое HTTPS
HTTPS это защищенный протокол для обмена данными между вашим сайтом и его посетителями. Он позволяет шифровать весь трафик между вашим веб-сервером и браузером вашего клиента. Это предотвращает возможность злоумышленникам и интернет-провайдерам подменивать или просматривать такие данные, как пароли, номера кредитных карт, адреса электронной почты.
Для многих веб-сайтов протокол HTTPS уже давно стал стандартом (включая сайты WordPress.org и WordPress.com), а для интернет-магазинов, платежных систем, систем онлайн-банкинга и других ресурсов связанных с финансами и обработкой личных данных, HTTPS стал неотъемлемой и в некоторых случаях обязательной частью.
В августе 2014 года поисковый гигант Google объявил, что наличие поддержки протокола HTTPS уже является одним из факторов при ранжировании поисковой выдачи. Но стоит отметить, что подключив HTTPS ваш сайт не «взлетит» в поисковой выдаче, поскольку наличие HTTPS является не единственным и далеко не самым весомым фактором ранжирования, но при одинаковых прочих показателях, Google отдаст предпочтение защищенному сайту.
Следует также отметить, что HTTPS (поверх SSL/TLS) работает немного медленнее, чем обычный HTTP протокол, поскольку серверу и клиенту приходится тратить некоторое время на установление защищенного соединения и шифрование данных, но в большинстве случаев разница совсем не заметна.
SSL сертификаты
Для настройки HTTPS на вашем сайте, вам сперва потребуется приобрести SSL сертификат. Мы рекомендуем рассматривать только крупных и проверенных поставщиков SSL сертификатов, например Comodo, Thawte, VeriSign, GeoTrust и GoDaddy. Чаще всего сертификаты от этих поставщиков можно приобрести у вашего хостинг-провайдера или регистратора доменных имен.
Типы сертификатов бывают разными, например с возможностью использовать на одном домене или на нескольких, с возможностью использования на поддоменах, с различными типами шифрования данных и прочее. Цены на сертификаты в среднем начинаются от $9 в год (за самые простые сертификаты) и доходят до $400 в год и выше.
Процесс приобретения зависит от типа сертификата и поставщика. Мы рассмотрим пример с сертификатом PositiveSSL от Comodo, который можно приобрести за $9 в год у регистратора NameCheap. Такой сертификат подтверждает владение доменом и выпускается в течение нескольких часов. Некоторые более дорогие сертификаты требуют наличие юридического лица и оформление соответствующих юридических документов.
Создание и подписание SSL сертификата
Перед тем как подписать сертификат у поставщика, вам необходимо его создать. Сделать это можно с помощью утилиты openssl, которая по умолчанию присутствует в OS X и в большинстве Linux дистрибутивах. Если вы используете Windows и у вас нет SSH доступа к любому Linux серверу, то вы можете рассмотреть OpenSSL для Windows или Cygwin.
Для создания нового SSL сертификата и запрос на его подпись, воспользуйтесь следующей командой:
openssl req -nodes -newkey rsa:2048 -keyout wpmag.ru.key -out wpmag.ru.csrСоздание нового ключа в OS X
После запуска, OpenSSL вас попросит заполнить некоторые данные о новом сертификате. При запросе Common Name (FDQN) введите ваш домен, без http:// и без www (даже если домен с www является для вас основным). После заполнения всех остальных данных у вас появится два новых файла. Для примеров мы будем использовать «wpmag.ru»:
- wpmag.ru.key — приватный ключ к вашему новому сертификату
- wpmag.ru.csr — запрос на подписание нового сертификата
Приватный ключ необходимо всегда хранить в тайне. Ни в коем случае не выкладывайте его в общий доступ, не пересылайте по электронной почте и не теряйте его. Файл с расширением .csr необходимо отправить на подпись поставщику SSL сертификатов.
В случае с PositiveSSL приобретенного через NameCheap перейдите в раздел SSL Certificates в панели управления и нажмите «Activate Now» рядом с вашим новым сертификатом. Обращаем ваше внимание, что у NameCheap вы можете подписать сертификат для вашего домена в зоне .ru, не зависимо от того, где вы приобрели сам домен.
На следующей странице необходимо выбрать тип используемого веб-сервера и вставить содержимое вашего файла .csr в текстовое поле:
Запрос на подпись SSL сертификата
После проверки запроса NameCheap предложит пройти процесс верификации вашего домена. Самым простым способом является верификация по электронной почте в рамках вашего домена, например [email protected].
После верификации домена и заполнения дополнительных данных на NameCheap, ваш сертификат отправится на подпись в Comodo и спустя несколько часов, подписанный сертификат придет вам на указанный электронный адрес. Как правило это zip-архив, содержащий несколько .crt файлов.
Для работы с веб-серверами nginx или Apache эти файлы необходимо «склеить» в один .crt файл в определенном порядке. Названия файлов в вашем случае могут отличаться, но главное, чтобы ваш сертификат (в наших примерах это wpmag.ru.crt) шел первым, а сертификат с «Root» в названии — последним.
- wpmag.ru.crt
- COMODORSADomainValidationSecureServerCA.crt
- COMODORSAAddTrustCA.crt
- AddTrustExternalCARoot.crt
Сделать это можно в любом текстовом редакторе или с помощью утилиты cat на OS X и в Linux-подобных системах:
cat wpmag.ru.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > wpmag.ru-bundle.crtТаким образом ваш SSL сертификат (вместе с другими) будет находится в новом файле wpmag.ru-bundle.crt, а ключ к сертификату — wpmag.ru.key, который вы сгенерировали ранее. Эти два файла потребуются для настройки HTTPS на вашем сервере.
Настройка SSL сертификата на сервере
Многие хостинг-провайдеры позволяют установить новый SSL сертификат через панель управления аккаунтом. Если эта возможность доступна у вашего провайдера, рекомендуем ею воспользоваться. Если же вы администрируете ваш сервер самостоятельно, то придется вручную подключить новый сертификат к вашему веб-серверу.
Подключение SSL сертификата в nginx
В конфигурации веб-сервера nginx для вашего домена необходимо включить поддержку SSL (порт 443) и указать путь к файлам вашего сертификата:
server { listen 80; listen 443 ssl; server_name wpmag.ru; ssl_certificate /path/to/wpmag.ru-bundle.crt; ssl_certificate_key /path/to/wpmag.ru.key; ... }Убедитесь в том, что у пользователя nginx (или www-data) есть права на чтение файлов сертификата. Напоминаем, что файл .key является секретным ключом, и располагать его в общедоступном месте (например в директории htdocs, www или public_html) не следует.
После изменения файла конфигурации, перезагрузите сервис nginx.
Подключение SSL сертификата в Apache
Для работы с WordPress мы всегда рекомендуем веб-сервер nginx, но если по какой-либо причине вы все еще используете Apache, то подключить SSL сертификат можно следующими директивами внутри раздела VirtualHost или в общем разделе, в зависимости от вашей конфигурации:
SSLCertificateFile /path/to/wpmag.ru-bundle.crt SSLCertificateKeyFile /path/to/wpmag.ru.keyЕсли вы используете директиву VirtualHost, убедитесь в том, что она распространяется на 443-й порт, а не только на 80-й. После внесения изменений в конфигурацию, перезапустите сервис Apache.
Настройка HTTPS в WordPress
После внесения изменений в конфигурацию веб-сервера, ваш сайт на WordPress должен автоматически стать доступным по протоколу HTTPS, но на этом работа не завершена. Все ссылки на сайте и в административной панели продолжат использовать протокол HTTP.
Изменить основной протокол сайта с HTTP на HTTPS можно в разделе Параметры → Общие в панели администрирования WordPress.
Настройки адреса сайта в WordPress
Эти же настройки можно задать в конфигурационном файле wp-config.php с помощью констант WP_HOME и WP_SITEURL. Это может быть полезно, если вы совершили ошибку при написании домена, и сайт вдруг стал недоступным.
После внесения изменений в адрес сайта, все ссылки будут по умолчанию использовать протокол HTTPS. К сожалению это не касается тех ссылок, которые вы разместили вручную например в статьях или страницах WordPress.
Замена http на https в статьях и страницах WordPress
Если у вас небольшое количество статей и страниц на сайте, вы можете вручную отредактировать их и изменить протокол в ссылках. Для существующих сайтов с большим объемом контента, такой метод будет слишком трудозатратным, поэтому предлагаем рассмотреть две альтернативы.
Если вы используете WP-CLI, то быстро выполнить поиск с заменой можно командой search-replace:
wp search-replace 'http://wpmag.ru' 'https://wpmag.ru'Второй альтернативой является PHP-скрипт Search Replace DB, который также выполняет поиск с заменой, но предоставляет при этом графический интерфейс.
Использовать поиск с заменой напрямую в базе данных MySQL (в том числе и на файлах экспорта) мы не рекомендуем, поскольку некоторые данные WordPress хранит в сериализованных массивах, и подобные данные портятся при смене длинны строк (https длиннее чем http).
В любом случае, перед любыми манипуляциями с базой данных, советуем сделать резервную копию. После поиска с заменой, зайдите на ваш сайт и убедитесь в том, что все старые ссылки начинаются с https://.
Редирект с http на https
Последним шагом в настройке HTTPS является закрытие вашего HTTP сайта и перенаправление всего трафика на новый протокол с шифрованием. Сделать это надежнее всего на уровне веб-сервера.
В nginx необходимо разбить директиву server на два блока. Первый будет слушать 80-й порт и перенаправлять трафик на HTTPS, а второй (основной) блок будет выполнять запросы по 443 порту (не забудьте убрать 80-й из основного блока).
server { listen 80; server_name wpmag.ru; rewrite ^(.*) https://$host$1 permanent; } server { listen 443 ssl; server_name wpmag.ru; ... }В Apache внутри директивы VirtualHost, в общем разделе или в подключаемом файле .htaccess можно добавить следующее условие для редиректа на HTTPS:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}После внесения изменений в конфигурацию, не забудьте перезагрузить веб-сервер.
Проверка правильности настройки HTTPS
Самой частой проблемой при настройки HTTPS в WordPress являются ссылки и ресурсы, загружаемые по протоколу HTTP. Например, если вы вставили изображение или JavaScript файл по протоколу HTTP, то по умолчанию он не будет исполняться. В таком случае надежнее всего загрузить данный файл на собственный сайт, и встроить его используя протокол HTTPS или с помощью протоколо-независимого формата //example.org/path/to/file.js.
В адресной строке браузеров Google Chrome и Firefox появятся специальные значки, если целостность HTTPS соединения нарушается какой-либо ссылкой на HTTP файл, так что при работе с вашим сайтом обращайте внимание на зеленый замок слева от адреса сайта. Этот замок должен всегда оставаться зеленым.
Иконка защищенного соединения в браузере Chrome
Также для проверки правильности настройки протокола HTTPS на вашем сервере, рекомендуем попробовать утилиту SSL Server Test от Qualys. Вбив адрес вашего сайта вы сможете получить подробный отчет о том, как настроен HTTPS на вашем сайте: валидность вашего сертификата, правильность редиректа с http на https, доступные методы шифрования и многое другое.
Заключение
Если вы содержите веб-сайт, который позволяет посетителям ввести адрес электронной почты (например оставив комментарий), номер телефона (заполнив форму обратной связи), и особенно если вы работаете с фактическими адресами, номерами кредитных карт и прочей конфиденциальной информацией, мы рекомендуем вам немедленно перейти на защищенный протокол HTTPS.
Учтите, что форма для входа в WordPress также является открытой для мошенников, если она не защищена протоколом HTTPS, особенно если вы часто посещаете свою «админку» из интернет-кафе, ресторанов и прочих публичных мест. То же самое касается работу с вашим сайтом на WordPress через мобильное приложение.
Если у вас остались вопросы по настройке HTTPS в WordPress, оставьте комментарий и мы обязательно вам ответим.
wpmag.ru
Перевод сайта на WordPress с http на https (Let's Encrypt) за 7 минут
Приветствую вас уважаемые читатели. Сегодня я расскажу как перевести WordPress сайта с http на https (Let’s Encrypt) за 7 минут на хостинге Бегет, на остальных хостингах это займет я так думаю побольше времени, так как вам в ручную скорее всего придется заказывать SLL, но не суть в любом случае все остальные шаги такие же.
Зачем подключать SLL (переходить на безопасное соединение)
Еще в прошлом году правительство США поручило всем местным федеральным сайтам перейти на HTTPS и сделать это до конца 2016 года. Также разработчики Mozilla Firefox заявили, что скоро перестанет поддерживать небезопасные HTTP-соединения в браузере и в добавок ко всему этому в Google заявили, что начиная с января 2017 года Chrome будет помечать все сайты, работающие через протокол HTTP и передающие конфиденциальную информацию как небезопасные, это все открытая информация о которой знаю я, а мало ли подобной закрытой информации, не исключено что остальные разработчики браузеров последуют таким же путем. Да к стати в Google обещает давать приоритеты сайтам с HTTPS, следовательно вы должны вырасти в поиске над теми у кого http.
Так что скоро скорее всего скоро будет массовый переход на HTTPS. В любом случае рано или поздно вы по любому с этим столкнетесь. И чтобы не рисковать снижением трафика, переводите сайты с HTTP на HTTPS.
Так же хочу отметить, что когда вы покупаете SSL сертификат для домена, вы переходите на новую версию протокола HTTP — HTTP/2 (https), которая позволяет выполнять множество запросов в рамках одного соединения, благодаря чему значительно повышается производительность сайтов. Следовательно нагрузки на хостинг тоже сокращаются, так же рекомендую использовать на сайте php 7, оно шустрее.
Вот еще можете почитать статью Moving Toward SSL размещенную на официальном сайте wordpress 1 декабря 2016. Она подтверждает выше сказанное, кроме того в ней написано, что если не будет сертификата на домене, в начале (или в течении, я чет не допер до конца) 2017 года, то у вас не будут работать некоторые важные функции в WP. В конечном итоге сертификат должен быть у всех, а хостинги не дающие SSL, идут в «бан» системы. Так что если ваш хостинг не раздает SSL как мой, то наверное стоит задуматься о переезде.
Думаю этой информации будет достаточно, что бы вы решились перейти на HTTPS. И так приступим. Что бы все не расписывать решил записать видео, так будет нагляднее я думаю.
Резюмирую видео!
Шаг 1. Подготовка к установке SLL
Первым делом сделайте резервные копии сайта и базы данных. Сделать то можно как вручную: за архивировав к файлы в корне сайта
и скачав бэкап базы на пк (нужно зайти в mysql, далее в phpMyAdmin и на вкладке «экспорт» выбрать метод экспорта и нажать вперед. Либо сделать все это в разделе backup вашего хостинга, как показано в видео.
Шаг 2. Заказ и получение SLL сертификата от Let’s Encrypt на хостинге Beget
Переходим в панель управления хостинга в раздел «сайты», на против сайта на который хотите установить SSL жмете на http, далее «установить SSL сертификат» и «установить». После чего должно выйти уведомление, что заявка на выпуск сертификата отправлена. И через некоторое время на почту придет сообщение, что сертификат установлен на ваш домен.
Шаг 3. Настройка WordPress по работе с протоколам HTTPS
Переходим в админку сайта во вкладку настройки и выбираем общие, там есть 2 строки: Адрес WordPress (URL) и Адрес сайта (URL), меняем в них протокол на https.
После чего вас выбросит из административной панели, соответственно перелогиниваетесь и заходите в админку снова.
Далее идем в раздел плагины — установленные и отключаем плагины защиты, если такие имеются (возможно нужно будет отключить и еще какие нибудь плагины)
Теперь нам нужно заменить в базе данных старые адреса сайта (http://site.ru) на новые (https://site.ru), сделать то можно несколькими способами, но самый простой на мой взгляд способ, установить плагин Better Search Replace и с помощью него заменить все адреса.
После того как плагин изменит все адреса, на первых парах устанавливаем и активируем плагин WordPress Force HTTPS, он заставит сайт принудительно работать через HTTPS. Данный плагин не обязательный, при условии что вы настроили все в .htaccess
.htaccess для WordPress сайта работающего по протоколу HTTPS
AddDefaultCharset utf-8 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_HOST} ^www.web-revenue.ru$ [NC] RewriteRule ^(.*)$ https://web-revenue.ru/$1 [R=301,L]
AddDefaultCharset utf-8 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
# END WordPress RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_HOST} ^www.web-revenue.ru$ [NC] RewriteRule ^(.*)$ https://web-revenue.ru/$1 [R=301,L] |
Если вы работаете так же как и я на хостинге Beget, то он вам подойдет в 90% случаев (только не забудьте заменить в двух последних строчках адрес сайта на свой), на других хостингах может отличатся. И так же перед тем как менять содержимое своего .htaccess сделайте на всякий случай его копию, мало ли.
Включаем все ранее отключенные плагины и отключаете уже не нужные (Better Search Replace и WordPress Force HTTPS — при условии что поправили .htaccess).
Вносим изменение в robots.txt
И так весь файл робот по сути выкладывать смысла нет, в нем нужно заменить по идее только строчку Sitemap и Hots, в случае если она у вас прописана с протоколом.
У меня эти две последние строки сейчас выглядят так:
Host: web-revenue.ru Sitemap: https://web-revenue.ru/sitemap_index.xml
Host: web-revenue.ru Sitemap: https://web-revenue.ru/sitemap_index.xml |
Включаем режим SSL в плагине защиты
Если у вас нет плагинов защиты, то не парьтесь. Лично у меня установлен плагин защиты iThemes Security, там есть вкладка SSL
Если на нее перейти, то увидите
Режим SSL в пользовательской части сайта, выбираем весь сайт, и SSL для консоли управления ставим галочку на против Обязательное использование SSL для панели управления. Если не чего не включать, все равно все работает по SSL. Так что смотрите сами включать или нет, я включил, прироста нагрузок не заметил.
С настройками WordPress все! Осталось уведомить поисковики что вы перехали на HTTPS. Углубляться в то не буду, это все наглядно показано в видео выше.
Если остались вопросы, задавайте, не стесняйтесь!
Ссылка на ресурсы из видео (статьи):
Хостинг: beget.comПлагин WordPress Force HTTPS: ru.wordpress.org/plugins/wp-force-sslПлагин Better Search Replace : ru.wordpress.org/plugins/better-search-replaceЯндекс.ВебмастерGoogle Search Console
В дополнение хочу сказать, забыл указать про проблемы со смешанным содержимым (когда у вас вместо зеленого значка замочка с лева, круглешок с восклицательным знаком или красный треугольник с восклицательным знаком, в общем не зеленый замочек), тогда можете считать, что ваш переход на https до конца еще не осуществлен, и вам в следующую статью: Смешанное содержимое HTTPS: как его найти и исправить.
web-revenue.ru
WordPress HTTPS (SSL) | WordPress.org
- WordPress HTTPS Settings screen
- Force SSL checkbox added to add/edit posts screen
- Upload the wordpress-https folder to the /wp-content/plugins/ directory.
- Активируйте плагин на странице «Плагины» в панели управления WordPress.
- Navigate to the HTTPS settings page in the admin sidebar in the dashboard.
- If you are using a non-default SSL Host for your HTTPS connection (e.g., a subdomain or shared SSL host) enter the entire secure URL into SSL Host. If your installation is located in a folder, you can choose to include it in the URL or not. If you set this to a domain that is not currently serving your WordPress installation over HTTPS and enable Force SSL Admin, you will lock yourself out of your dashboard. Follow instructions in the FAQ to reset the plugin.
- If you would like connections to your admin panel to be secure, enable Force SSL Admin. If you are using a non-default SSL Host, do not use WordPress’ built-in FORCE_SSL_ADMIN or FORCE_SSL_LOGIN.
- If you are looking to secure only your admin panel and/or posts and pages you specify, enable Force SSL Exclusively. This will ensure that any content not specified to be secure is always served over HTTP.
- You can individually secure post and pages when editing them by updating the settings located in the HTTPS box on the right sidebar.
- You can use simple text match or regular expressions to specify URL’s that should be secure using URL Filters in the WordPress HTTPS settings. Each filter should be on one line.
- Upload the wordpress-https folder to the /wp-content/plugins/ directory.
- Активируйте плагин на странице «Плагины» в панели управления WordPress.
- Navigate to the HTTPS settings page in the admin sidebar in the dashboard.
- If you are using a non-default SSL Host for your HTTPS connection (e.g., a subdomain or shared SSL host) enter the entire secure URL into SSL Hos
ru.wordpress.org
Протокол HTTPS. Как настроить и перевести сайт на https на примере WordPRess
Доброго дня, читатели блога SEO-Дилетанта. На днях* в августе 2016 года я полностью перевела свой блог на защищенный протокол HTTPS и просто не могу не поделиться с вами, как я это сделала.План статьи следующий:
- Как выбрать и установить SSL сертификат
- Подготовка сайта к переносу на HTTPS
- Тестирование и устранение проблем
- Переезд WordPress с HTTP на HTTPS
- А что говорят Яндекс и Google?
- Настройка 301 редиректа
Как выбрать и установить SSL сертификат
Так как мой блог рассчитан на новичков, встал вопрос: рассказывать подробно о том, что такое HTTP и HTTPS, что такое SSL сертификат и зачем все это нужно?
Я решила, что данная статья будет ориентирована на технические детали, а теорию я рекомендую почитать в блоге Яндекса. Самая простая для понимания, без лишней сложной терминологии и с простыми примерами, статья Что такое протокол HTTPS, и как он защищает вас в интернете.
Итак, современные реалии таковы, что любой сайт рано или поздно должен перейти на защищенную передачу данных. В первую очередь это важно для сайтов, где происходит обмен информацией между владельцем сайта и пользователем, под такую категорию сайтов подпадают все интернет-магазины, сайты, где существует регистрация пользователей с передачей персональных данных.
Чтобы перевести сайт на HTTPS, нужно получить специальный SSL сертификат. Сертификаты бывают разные. Различают три основных типа.
- DV — Domain Validation — самый простой сертификат начального уровня, подтверждает только доменное имя. Подходит для простых сайтов, например, блогов, небольших коммерческих сайтов без регистрации и обмена данными, где не происходит обмена персональной информацией между посетителем сайта и сервером, на котором сайт находится. Такой сертификат выдается автоматически, в течении нескольких минут. Это самые дешевые сертификаты.
- OV — Organization Validation — сертификат подтверждает, что домен и организация принадлежат одному юридическому лицу. Прежде, чем выдать такой сертификат, центр сертификации проверяет фактическое существование организации, запросившей сертификат. Необходимо предоставить не только нужную информацию по своему юридическому лицу, но и ответить на телефонный звонок из сертификационного центра. Стоимость зависит от центра, где получен сертификат.
- EV — Extendet Validation — сертификат с расширенной проверкой, такие сертификаты самые сложные в получении, обязательны для банков и платежных систем.
Итак, для физических лиц и простых сайтов подходят DV SSL сертификаты. При этом приятная новость в том, что такой сертификат можно получить абсолютно бесплатно. На данный момент мне известно три сертификационных центра, где можно получить SSL сертификат бесплатно:
Но не торопитесь самостоятельно получать сертификат. Зайдите в свою панель управления на хостинге, посмотрите внимательно, вполне может быть, что ваш провайдер предоставляет услугу автоматического получения бесплатного сертификата со всеми необходимыми настройками.
Я, например, совершенно случайно узнала, что на моем хостинге Beget.ru есть такая услуга в разделе Домены.
Чтобы получить сертификат, нужно было просто нажать на соответствующую иконку напротив нужного домена. После чего появились три вкладки:
- Заказ SSL сертификата — платная услуга.
- Установка SSL сертификата — если сертификат уже получен самостоятельно.
- Бесплатный SSL сертификат
После подтверждения установки сертификата, через несколько минут на почту мне пришло письмо, что на указанный домен установлен SSL сертификат. С этого момента блог начал открываться по двум адресам:
http://amateurblogger.ru https://amateurblogger.ru
http://amateurblogger.ru https://amateurblogger.ru |
Если ваш хостинг не предоставляет такую услугу автоматически, то вам придется получить самостоятельно SSL сертификат, после чего написать в службу поддержки хостинга, которая окажет помощь в установке сертификата на сайт.
При таком варианте вы можете выбрать любой из бесплатных сертификатов, и следовать инструкциям на сайте сертификационного центра.
Итак, половина дела сделана. Прежде, чем мы приступим непосредственно к настройкам WordPress, нужно подготовиться, ведь речь идет о работающем сайте, а не о новом.
Подготовка сайта к переносу на HTTPS
Конечно, я волновалась, когда впервые совершала все настройки для перехода. Но ничего сложно в переносе нет. Главное, как всегда, заранее подготовиться и четко соблюдать этапы переноса. Лично у меня их получилось 7.
На момент перехода на https у меня стояла версия WordPress 4.4.4. Проблем, к которым я не была бы готова не было. Все прошло в штатном режиме.
Прежде, чем начинать какие-либо работы, вы должны знать:
- Как сохраняются и восстанавливаются резервные копии сайта. Уметь это сделать быстро без суеты.
- Устанавливать плагины
- Уметь вносить изменения в файлы темы
Этап 1: Бекап сайта
В первую очередь я рекомендую сделать бекап через панель хостинга, т.к. на мой взгляд, быстро восстановить сайт из панели управления хостингом легче всего. Если что-то пойдет не так, сайт восстанавливается нажатием одной кнопки. Но и дополнительно себя обезопасить не помешает. Обязательно нужно сохранить базу данных и файлы вашей темы. Можно воспользоваться специальными плагинами, например, BackUpWordPress.
Этап 2: Изменение URL изображений
Все адреса к изображениям хранятся в базе данных. Поэтому мы делали ее бекап. Чтобы внести изменения в базу данных MySQL можно воспользоваться специальным плагином Better Search Replace. Плагин устанавливается в раздел Инструменты. Заходим в настройки плагина.
В строке Искать указываем:
В строке Заменить на:
Cтоит заметить, что можно заменить на такой вариант:
Когда речь идет об изображениях на собственном сервере, принципиальной разницы между двумя адресами нет. Если речь идет о ссылках на другие сайты, то рекомендуется URL начить со слешей //.
В пункте Выбор таблиц выбираем таблицу wp_postsСнимаем галочку с пункта Холостой запуск? (без замены) Если отмечено, никаких изменений в БД не будет сделано, позволяет заранее посмотреть на результат.Жмем кнопку Запустить Поиск/Замену. Плагин сам изменит адреса изображений, о чем напишет в верхней части страницы.
Первый раз можно сделать поиск, не снимая галочки с пункта Холостой запуск. Просто для того, чтобы удостовериться, что вы все делаете правильно.
- В некоторых случаях проверка только одной таблицы может быть недостаточно. Я сталкивалась с тем, что замену делала ещё и в таблице options.
- Преффикс таблиц может быть другим, если вы его меняли в целях безопасности своего блога.
Вы не поверите, но на этом можно было бы закончить настройки WordPRess, если бы мы вебмастера не вносили изменения в свои темы, не ставили бы кучу плагинов, которые не поддерживаются. Поэтому переходим к следующему этапу.
Тестирование и устранение проблем
Этап 3: Тестирование
Сейчас, чтобы понимать, как движется работа, нужно открыть свой сайт по адресу с https:
В адресной строке слева от домена вы увидите иконку замка. Она имеет три состояния:
- Серый замок с оранжевым знаком — на странице много незащищенных элементов.
- Серый замок с зеленым знаком — на странице мало незащищенных элементов, которые браузер блокирует (встречала один раз и больше не смогла его воспроизвести).
- Зеленый замок — страница защищена полностью.
Итак, наша задача сделать все, чтобы на всех страницах сайта был замок зеленого цвета без предупреждающих сообщений. Если на вашем сайте много страниц, не обязательно все их просматривать. Главное убедиться, что мы все сделали правильно на втором этапе.
Если у вас уже на данном этапе замок зеленого цвета, то вы можете переходить к самому последнему этапу — настройке 301 редиректа. Если есть предупреждения, то читаем внимательно, где могут быть ошибки.
Этап 4: Исправление ошибок
Самая частая проблема — это URL на скрипты в файлах темы и URL на изображения в файле style.css. Актуально для старых тем WordPress.Вторая по частоте — если вы вручную вносили изменения в файлы своей темы.
Чаще всего изменения вносятся в файлы:
- style.css
- header.php
- functions.php
Могут быть и другие файлы, но чтобы не делать лишнюю работу, сначала проверьте эти. Проверяется просто.
- Открываем нужный файл в админке блога: Внешний вид — Редактор.
- Жмем Ctrl+F, в строке поиска вбиваем http://, жмем Enter.
Пример в файле style.cssВезде, где было найдено http:// можно смело удалить http: вообще, оставив только два слеша.
Часто в файлах темы в комментариях используются ссылки на кодекс WordPress. Выглядит это, примерно, так:
/* * Enable support for Post Thumbnails on posts and pages. * * @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails */
/* * Enable support for Post Thumbnails on posts and pages. * * @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails */ |
Если вы понимаете, что это комментарий в коде, то можете не менять эти ссылки, они не влияют на безопасное соединение, а удаление таких ссылок лишняя работа.
Если после проверки файлов темы, браузер все равно «ругается», то обратите внимание на свои виджеты. Чаще всего в виджеты мы вставляем ссылки на социальные сети, на кнопки статистики, на кнопки рейтингов. Именно здесь могут быть незащищенные ссылки.
Лично я с другими проблемами не сталкивалась, поэтому мне сложно смоделировать ситуацию, при которой после всей проделанной работы браузер будет выдавать предупреждение.
Если проблема осталась, изучайте исходный код страниц своего сайта, какие URL отдаются по http.
Имеет значение только URL на файлы скриптов и стилей или на изображения. URL на обычные страницы могут остаться с http.
Итак, вожделенный зеленый восклицательный знак. Все готово к переезду на https.
Переезд WordPRess с HTTP на HTTPS
Этап 4: Перевод сайта на https
Тут все до невозможности просто. Заходим в админку своего блога в Настройки — Общие.И вносим изменения в пункты Адрес WordPress (URL) и Адрес сайта (URL)
Будьте внимательны, если ваш сайт находится в директории или на поддомене, все так и должно остаться. Меняем только протокол.
Как только вы нажмете кнопку «Сохранить изменения», вас «выкинет» из админки и нужно будет заново авторизоваться с прежним логином и паролем, но уже по новому адресу.
Поздравляю, вы завершили переход на защищенный протокол. Но, к сожалению, это ещё не конец и есть несколько незавершенных дел.
А что говорят Яндекс и Google?
В данный момент сайт открывается по двум разным адресам:
http://mydomen.ru https://mydomen.ru
http://mydomen.ru https://mydomen.ru |
Если вы не первый год владеете интернет-ресурсом и интересуетесь тем, как индексируются сайты, вы знаете, что для поисковиков — это два разных сайта с одинаковым содержимым. И единственное правильное решение — это настроить 301 редирект.
Прежде, чем мы перейдем к настройке 301 редиректа, стоит остановиться на том, что в сети есть две противоположные позиции, когда нужно это делать.
Одни ссылаются на Яндекс, который в своем блоге рекомендовал ждать пару недель для склейки зеркал — Деликатный переезд (или рекомендации Яндекса по переезду на HTTPS).
Другие на Google, упоминания о сроках я не нашла, поэтому логично ставить 301 редирект сразу, чтобы избежать дублирования.
Я специально ничего не писала про файлы robots.txt и sitemap.xml до этого момента по двум причинам:
- Для Яндекс и Google есть небольшая разница в вносимых изменениях в файлы robots.txt и sitemap.xml.
- Ваш сайт может быть настроен иначе, чем у меня.
Поэтому дальше каждый решает для себя сам, каким путем ему идти, внимательно изучив все справочные материалы по ссылкам выше. Я расскажу только свой путь.
Этап 5: Настройка файлов robots.txt и sitemap.xml
Около года назад я удалила свой файл robots.txt. В данный момент у меня используется автоматически генерируемый wordpress robots.txt. Поэтому в нем изначально нет директивы Host и я не стремлюсь менять данный файл по нескольким причинам:
- Яндекс правильно определяет зеркало сайта.
- Директива Host является неофициальной и действует только для Яндекса.
- Google рекомендует максимально открывать доступ к сайту для правильного сканирования. А для управления индексацией использовать мета-теги robots и настройки сервера.
Поэтому после четвертого этапа я не вносила никаких изменений в файл robots.txt.
Если вы используете физический файл robots.txt и в нем есть директива Hosts, обязательно измените адрес сайта.
Согласно рекомендациям Google нужно отправить два файла sitemap.xml с новыми URL и старыми. Я этого не делала. Я использую плагин Google XML Sitemaps. После перевода блога на https я не вносила никаких изменений в настройки плагина. Он автоматически начал генерировать все ссылки с новым протоколом.
Если вы используете другой плагин для файла sitemap.xml, если ваш сайта на другой платформе, убедитесь, что в файле правильно генерируются ссылки с безопасным протоколом.
Настройка 301 редиректа
Редирект я настроила сразу. В теории, конечно, между исключением страницы с редиректом из поиска и появлением новой страницы в поиске может быть какой-то временной промежуток, на практике же я с таким не сталкивалась и подмена старых страниц новыми происходила в один апдейт без потери трафика.
Стоит также принять во внимание, что у меня есть свежий опыт ожидания склейки зеркал. И времени это занимает не две недели, а скорее два месяца для блога в несколько сотен записей.
Пожалуйста, если вы сомневаетесь, изучите тему самостоятельно. Мой опыт — это мой опыт. И это не значит, что я права на 100%. Решение, когда делать 301 редирект, как настраивать файлы robots.txt и sitemap.xml зависит только от вас.
Этап 6: 301 редирект
Итак, как настроить 301 редирект для перевода сайта с http на https в файле .htaccessЕсли вы не знаете, что такое файл .htaccess, вам сюда Как правильно настроить URL адрес сайта в файле .htaccessОткрываем файл для редактирования. Если ваш сайт на WordPress и вы ни разу не вносили изменения в файл .htaccess, то выглядеть он должен так:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
# BEGIN WordPress
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
# END WordPress |
Код для перенаправления с http на https:
RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] |
устанавливаем сразу после строки
Все вместе должно получиться так:
# BEGIN WordPress RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
# BEGIN WordPress
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
# END WordPress |
Очень важно установить код именно в то место, как я указала. Иначе перенаправление может не срабатывать.
Этап 7: Яндекс.Вебмастер
После всей проделанной работы не забудьте добавить сайт в Яндекс.Вебмастер с новым протоколом.На данный момент (январь 2017 года) по такому плану я перевела на безопасный протокол 5 сайтов.
* На днях зачеркнуто, потому что статью начала писать ещё в августе, когда осуществила перенос, а закончила только сейчас.
Удачного вам переезда. Будут вопросы, задавайте в комментариях.
amateurblogger.ru
Плагин wordpress перенаправление с http на https — ТОП
Плагин — Easy HTTPS (SSL) Redirection позволит вам создать автоматический редирект, перенаправление с адреса http на https. Данный плагин будет полезен тем кто установил для своего сайта SSL сертификат. Если вы установили SSL сертификат на сайт, который длительное время был без сертификата SSL, то есть адрес сайта начинался с http, то значит вам нужно будет сделать временное перенаправление на адрес https, чтобы перенаправить все старые URL адреса в поисковой выдаче на новые с https. Сделать перенаправление вам поможет простой плагин, который вы сможете установить прямо из админ-панели wordpress. Перейдите по вкладке: Плагины — Добавить новый, введите название плагина в форму поиска, нажмите Enter, установите и активируйте плагин.
Чтобы настроить плагин, перейдите по вкладке: Настройки — HTTPS Redirection. В самом верху страницы, будет отображаться уведомление: «Если после включения перенаправления у вас возникли проблемы, не открывается сайт и т.д., то откройте файл htaccess и удалите из него код, который начинается со строчки — # BEGIN HTTPS Redirection Plugin, а заканчивается строчкой — # END HTTPS Redirection Plugin, после чего сохраните файл и обновите сайт. Файл htaccess находится в корневой директории сайта, где находятся все файлы сайта.
Для включения автоматического перенаправления поставьте галочку в поле — Автоматическое перенаправление на HTTPS.
— Force resources to use HTTPS URL, поставьте здесь галочку, чтобы создать автоматическое перенаправление для статических ресурсов, таких как изображения.
После того как вы поставите галочки, нажмите на кнопку — Сохранить изменения, после чего перенаправление включится автоматически. Чтобы проверить работоспособность плагина, найдите в поиске Google или Yandex, любую вашу старую запись, которая ещё находится по адресу http, попробуйте открыть запись, если вы попадёте на страницу записи с новым адресом https, значит всё работает.
Рекомендация: перед тем как самому создавать перенаправление, обратитесь в службу поддержки вашей хостинг компании, возможно вам ничего и не нужно будет делать, всю работу по перенаправлению сделает за вас ваш хостинг.
info-effect.ru
SSL в WordPress
Блог / WordPress / SSL в WordPress. Установка сертификата от Let’s Encrypt и настройка https:// на сайтеПервоначально этот пост был опубликован, ещё когда не было бесплатных сертификатов Let’s Encrypt, теперь же, с их появлением, произошли некоторые изменения, как минимум, на каждом сайте с SSL теперь написано «Надёжный»:
Если же у вас есть например форма авторизации на странице и нет https://, то гугл хром соответственно будет указывать «Нанадёжный», а если вы платежи по картам принимаете и нет SSL, то хром вообще с ума сойдет 😂 также все говорят о влиянии SSL на SEO, а потому с начала этого года (2017) все просто активизировались и загорелись установкой SSL-сертификата себе на сайт.
Если вы используете какой-либо хостинг, то на мой взгляд, первый шаг, связанный с заказом, продлением и установкой сертификата Let’s Encrypt должен решаться через панель хостера нажатием одной кнопки, мне нравится как это реализовано у beget, также помню, что у меня абсолютно не возникло никаких проблем с сертификатами на sprinthost.
Вообще, на мой взгляд есть два варианта настройки защищенного соединения на сайте WordPress:
- админка через https, а сайт через http (опять-таки, в 2015 году это ещё было актуально, но теперь прикольно делать весь сайт на https://, поэтому скипайте первую часть поста и переходите сразу ко второй),
- полностью весь сайт через https.
SSL в админке и для страницы wp-login.php
Если вам нужно, чтобы админка сайта WordPress и страница авторизации wp-login.php были доступны только по защищенному соединению, вставьте эту строку в файл wp-config.php (конфигурационный файл, находится в корне сайта):
define('FORCE_SSL_ADMIN', true); |
Как сделать, чтобы остальной сайт всегда был без https
Это нужно для того, чтобы страницы вашего сайта не были доступны по двум адресам одновременно (с https и без). Используем 301-й редирект. Код — в functions.php.
/* * Запрет SSL для контента */ add_action( 'template_redirect', 'true_non_ssl_redirect', 1 ); function true_non_ssl_redirect() { if ( is_ssl() && !is_admin() ) { // если переход был по протоколу https:// и пользователь находится не в админке if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) { wp_redirect( preg_replace( '|^https://|', 'http://', $_SERVER['REQUEST_URI'] ), 301 ); exit(); } else { wp_redirect( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 ); exit(); } } } |
Полностью весь сайт на SSL
После того, как при переходе по адресу вашего сайта с https:// у вас перестала вылазить ошибка и стал открываться какой-никакой, но ваш сайт, вы можете воспользоваться этим чеклистом для настройки сайта:- Для начала переходим в Настройки > Общие и меняем там http на https:
Процесс перехода на https:// очень похож на процесс по смене домена. Сейчас ваша задача, чтобы везде, где на сайте был указан протокол http://, сейчас было заменено на https://. Если у вас пара тысяч страниц контента, это может стать проблемой, поэтому рекомендую воспользоваться этим инструментом, просто в поле для старого домена указываете свой сайт с http://, а там где новый домен — с https://. Отправляетесь в phpMyAdmin (через панель хостинга) и запускаете сгенерированные запросы на вкладке SQL.
- Проверьте свою тему — нет ли там таких мест, в которых подключаются стили или скрипты, или что бы там ни было через http://, если да, меняем в коде на https:// либо на относительный протокол //. Успешным выполнением первых двух пунктов будет считаться надпись «Надёжный» в браузере гугл хром на всех страницах сайта. Если она появилась не везде, открываем консоль браузера и смотрим, что упустили.
- Затем нам нужно настроить редирект страниц сайта с незащищенного соединения на защищенное, ведь мы не хотим, чтобы сайт был одновременно доступен по двум урлам, для этого вставляем в основной .htaccess:
RewriteEngine on # если первая строка уже присутствует в вашем .htaccess файле, то второй раз вставлять её ни к чему RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L] # дальше пойдут правила постоянных ссылок WordPress, если таковые имеются Однако у некоторых хостингов с этим кодом могут возникнуть проблемы, в таком случае не трогайте .htaccess, а вставьте например в самое начало functions.php:
$use_sts = true; if ($use_sts && isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { header('Strict-Transport-Security: max-age=31536000'); } elseif ($use_sts) { header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true, 301); die(); } - Уведомляем Google об изменениях:
- Заходим в Webmaster Tools
- Добавляем туда свой сайт ещё раз, но на этот раз с https://.
- Открываем теперь в Google Webmasters сайт с http:// и нажимаем в меню с шестеренкой ссылку «Изменение адреса».
- Выполняем инструкции гугла и жмём «Отправить».
- Уведомляем Яндекс об изменениях:
- В директиве hosts в файле robots.txt укажите протокол https://:
- Вы можете также использовать инструмент Главное зеркало в панели Яндекс Вебмастер.
Смотрите также
misha.blog