wpssl.ru wordpress WPSSL.ru

Решение проблемы смешанного контента (Mixed Content) в WordPress при использовании SSL

Переход сайта WordPress на HTTPS с помощью SSL-сертификата – важный шаг для безопасности и доверия пользователей. Однако одна из частых проблем – это ошибка смешанного контента (Mixed Content), когда некоторые ресурсы сайта загружаются по HTTP, а не по HTTPS. Это вызывает предупреждения в браузерах и снижает уровень безопасности.

Что такое смешанный контент и почему он возникает в WordPress

Смешанный контент – это ситуация, когда страница загружается по защищенному протоколу HTTPS, но содержит ссылки на ресурсы (картинки, скрипты, стили и т.д.), загружаемые по незащищенному HTTP. Браузеры блокируют или предупреждают о таких ресурсах, так как они могут быть уязвимы для перехвата и вмешательства.

В WordPress проблема смешанного контента часто возникает из-за:

  • Жестко прописанных HTTP-ссылок в базе данных (например, в контенте постов, настройках тем и плагинов).
  • Внешних ресурсов, которые не поддерживают HTTPS.
  • Использования старых плагинов и тем, в которых URL прописаны с HTTP.
  • Кеширования старых версий страниц с HTTP.

Для правильного решения проблемы нужно комплексно подходить к выявлению и исправлению таких ссылок.

Как найти и исправить смешанный контент в WordPress

Ниже приведены несколько методов для диагностики и устранения смешанного контента.

1. Использование инструментов браузера

В Google Chrome или Firefox можно открыть Инструменты разработчика (F12) и перейти в консоль (Console). Там будут отображаться предупреждения о смешанном контенте, с указанием точных URL ресурсов, загружаемых по HTTP.

Это первый и самый быстрый способ понять, какие именно ресурсы вызывают проблему.

2. Поиск и замена HTTP на HTTPS в базе данных

Часто ссылки с HTTP прописаны в базе данных. Для их массового исправления можно использовать плагин Clearfy Pro или бесплатные инструменты, например, Better Search Replace.

Пример SQL-запроса для замены (обязательно сделайте резервную копию базы!):

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com') WHERE option_value LIKE '%http://example.com%';
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://example.com', 'https://example.com') WHERE post_content LIKE '%http://example.com%';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://example.com', 'https://example.com') WHERE meta_value LIKE '%http://example.com%';

Этот запрос заменит URL сайта с HTTP на HTTPS в основных таблицах WordPress.

3. Использование плагина для автоматического исправления

Плагин Clearfy Pro имеет встроенный модуль исправления смешанного контента. Он динамически заменяет HTTP-ссылки на HTTPS в выводе сайта, что особенно полезно при работе с внешними или динамическими ресурсами.

Как программно исправлять смешанный контент в WordPress

Если нужно более гибкое решение, можно использовать фильтры WordPress для замены HTTP-ссылок прямо при выводе контента.

Пример функции с префиксом домена для замены HTTP на HTTPS в контенте:

function wpssl_replace_http_with_https_in_content($content) {
    $site_url = site_url();
    $http_url = str_replace('https://', 'http://', $site_url);
    $content = str_replace($http_url, $site_url, $content);
    return $content;
}
add_filter('the_content', 'wpssl_replace_http_with_https_in_content');

Этот фильтр заменит все вхождения URL сайта с HTTP на HTTPS в содержимом постов непосредственно при выводе, помогая избежать смешанного контента.

Пример расширения для CSS и JS

Для скриптов и стилей можно применять такой же подход, например, через фильтр script_loader_src и style_loader_src:

function wpssl_force_https_src($src) {
    if (strpos($src, 'http://') === 0) {
        $src = preg_replace("#^http://#", 'https://', $src);
    }
    return $src;
}
add_filter('script_loader_src', 'wpssl_force_https_src');
add_filter('style_loader_src', 'wpssl_force_https_src');

Это гарантирует, что ссылки на скрипты и стили всегда будут HTTPS, если они загружаются с вашего сайта.

Особенности смешанного контента с внешними ресурсами

Иногда проблема возникает из-за внешних ресурсов, которые не поддерживают HTTPS, например, картинки или шрифты, загружаемые с http-сайтов.

Решение:

  • Ищите альтернативные HTTPS-версии ресурсов или аналоги.
  • Скачивайте внешние файлы и храните их локально на вашем сервере.
  • Используйте плагины, которые помогают с локализацией ресурсов, например, WPRemark для оптимизации загрузки.

Заключение по решению смешанного контента в WordPress

Проблема смешанного контента – одна из самых распространенных при переходе на SSL в WordPress. Однако с помощью правильных инструментов, поиска и замены, а также программных фильтров, ее можно эффективно решить и обеспечить полную безопасность и корректное отображение сайта.

Если вы используете плагины из WPSHOP, многие из них уже учитывают работу с HTTPS и помогают избежать подобных проблем.

×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙