Смешанный контент на сайте WordPress
Сегодня на какой сайт не зайди — кругом рулит https протокол, надо это в действительности сайту или нет. Особенно доставляет это на обычных блогах на WordPress.
Серьезно? Что такого приватного и конфиденциального вы тащите у своих посетителей? Имя и мыло из формы комментариев? Я вас умоляю! А то этого никто не знает. Все это «добро» давно кочует по разным спам-базам.
А! Наверное, вы делаете это для того чтобы гугл любил сильнее. Ну что ж… Флаг вам в руки, как говорится.
И, тем не менее, раз пошла такая пьянка, то расскажу про одну штуку. На хостинге, где я работаю в ТП, периодически прилетает в тикетах такой вопрос:
«Я установил SSL-сертификат, а браузер все равно ругаеться на мой сайт как на незащищенный. Вчомдело?».
А дело в смешанном контенте. Что это такое? Рассказываю.
Что такое смешанный контент
Смешанный контент (mixed content), это когда часть содержимого на странице открывается по защищенному https протоколу, а часть по незащищенному http. Такое бывает сплошь и рядом. Особенно на WordPress и особенно на самопальных шаблонах.
Такое сообщение говорит о том, что не весь контент на сайте защищен. Причина — смешанный контент.
Происходит это по банальной причине: в коде шаблона были использованы абсолютные ссылки с префиксом http:// для картинок, видео-роликов, скриптов и др. Или когда вы в своих постах добавляете ссылки на сторонние ресурсы с протоколом http.
SSL-сертификат не может защитить эти элементы, как бы не старался. Поэтому такое соединение не будет полностью защищенным. В результате получаем смешанный контент.
Как избавиться от смешанного контента на WordPress
Сначала нужно найти этот «неправильный» контент, который грузится по незащищенному протоколу http.
Есть несколько вариантов поиска. Можно воспользоваться онлайн-сервисами типа Why No Padlock? или HTTPS Checker.
Можно также использовать браузерные инструменты. Например, в браузере Google Chrome. Открываете ваш сайт, жмете F12 и переходите на вкладку Console.
Здесь браузер вам сразу выдаст предупреждения красным цветом, которые покажут, какой контент загружается по незащищенному протоколу http.
Чтобы избавиться от этого, придется поработать ручками — тупо заменить все http-ссылки в постах на https соответственно, а также в шаблоне сайта убираем все абсолютные ссылки.
Есть, конечно же, уже готовый плагин для этих же целей. Называется SSL Insecure Content Fixer. По отзывам вроде неплох. Но это уже на ваше усмотрение. Если смешанного контента не много, то лучше исправить все вручную, чем ставить лишний плагин.
Как защититься от смешанного контента в будущем
Носить защитную маску и прыскать на руки дезинфицирующее средство по 3 раза. Шутка! :)
Чтобы на сайте WordPress (да и на любом другом движке в сущности) не появлялся смешанный контент, не используйте в шаблонах абсолютные ссылки, только относительные. И не ставьте в постах ссылки на другие ресурсы с протоколом http.
Это все.
Полезная статья.Могу добавить что на сайтах вордпресс хорошо справляется со смешанным контентом плагин Better Search Replace. За секунды находит и изменяет в базе данных все ссылки с http на https. Имеется «холостой» режим. Т.е. можно вначале проверить корректность работы без изменения, и убедившись что все ок сделать окончательную подмену. Потом плагин можно отключить и удалить.
Правда у меня сейчас на сайте снова смешанный контент. Пришлось временно добавить ссылку на чужой ресурс с http
Спасибо, Александр! По поводу добавления ссылок на другие ресурсы с http — как вариант, можно сделать не прямую ссылку, а через редирект со своего сайта или использовать плагин подходящий. Например, WP No External Links.
Или в адресе ссылки не указывать «http», а просто оставлять ссылку такой: «//tvoisait.domain», т.е просто два слеша.