Мультисайт имеет SSL-сертификат, но медиа-библиотека по-прежнему http://

Вопрос или проблема

Наша многоуровневая установка WordPress имеет URL-адрес https://xx.com для основного домена и, например, https://yy.xx.com в качестве подсайта. Мы используем встроенную функцию сопоставления доменов WordPress.

Ссылки на медиатеку все еще отображаются как http://xx, поэтому любые изображения, используемые на подсайтах, помечаются как небезопасные. Только один подсайт – наш самый недавний – имеет ссылки на медиатеку со структурой https://zz.xx.com. Возможно, SSL-сертификат был установлен после создания других подсайтов, но до ZZ: я не уверен.

Как я могу сделать так, чтобы ссылки на медиатеку WP отображались как https:// – и желательно, чтобы в URL-адресах был указан подсайт?

Идеально, если это можно сделать без плагина. Спасибо!

Замените все ссылки до установки SSL (вы можете обновить ссылки через SQL)

Ваш WordPress теперь должен выдавать ссылки с https:// после установки SSL-сертификата. Эта проблема обусловлена решением WordPress вставлять полные ссылки при добавлении медиа через редактор.

Вы не упомянули, есть ли у вас htaccess, который перенаправляет http-ссылки на https. Вы пробовали это:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Поместите это перед вашими строками WP в файле htaccess.

Хотя вы можете использовать, как было предложено, плагин поиска/замены (мне нравится “Better Search and Replace”), чтобы пройти через всю базу данных WP и искать http://www.example.com и заменять его на https://www.example.com.

Чтобы заставить WordPress использовать HTTPS для ссылок на медиатеку на вашей многоуровневой установке, вы можете добавить следующий код в файл wp-config.php:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_CONTENT', true);

Это заставит WordPress использовать HTTPS для всех страниц администрирования и контента на вашем сайте, включая ссылки на медиатеку.

Чтобы использовать правильный подсайт в URL-адресах, вы можете использовать константы WP_CONTENT_URL и WP_PLUGIN_URL в вашем файле wp-config.php. Например:

define('WP_CONTENT_URL', 'https://' . $_SERVER['HTTP_HOST'] . '/wp-content');
define('WP_PLUGIN_URL', 'https://' . $_SERVER['HTTP_HOST'] . '/wp-content/plugins');

Это будет использовать текущий подсайт в URL-адресах для вашего контента и плагинов.

Ответ или решение

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

Шаги для решения проблемы

  1. Обновление старых ссылок в базе данных:
    Постарайтесь обновить все старые ссылки с http:// на https:// в базе данных. Это можно сделать с помощью SQL-запросов. Например, используйте следующий SQL-код в вашей базе данных:

    UPDATE wp_posts SET guid = REPLACE(guid, 'http://ваш-домен.com', 'https://ваш-домен.com');
    UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://ваш-домен.com', 'https://ваш-домен.com');

    Учтите, что вместо ваш-домен.com следует использовать ваш фактический домен. Также, если у вас разные префиксы таблиц для подсайтов, вам может понадобиться обновить их отдельно.

  2. Редирект HTTP на HTTPS:
    Убедитесь, что у вас настроены редиректы на уровне сервера. В файле .htaccess добавьте следующие строки:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Эти правила перенаправят все запросы с HTTP на HTTPS.

  3. Принудительное использование HTTPS в WordPress:
    В файле wp-config.php добавьте следующие строки:

    define('FORCE_SSL_ADMIN', true);
    define('FORCE_SSL_CONTENT', true);

    Эти настройки заставят WordPress использовать HTTPS для всех страниц администратора и контента, включая ссылки на медиа.

  4. Настройка URL медиафайлов:
    Чтобы убедиться, что ссылки на медиафайлы используют правильный поддомен, добавьте следующий код в файл wp-config.php:

    define('WP_CONTENT_URL', 'https://' . $_SERVER['HTTP_HOST'] . '/wp-content');
    define('WP_PLUGIN_URL', 'https://' . $_SERVER['HTTP_HOST'] . '/wp-content/plugins');

    Это позволит WordPress использовать текущий поддомен в URL-адресах для содержимого и плагинов.

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

Заключение

Следуя этим шагам, вы сможете исправить проблему с медиа-библиотекой, чтобы все ссылки отображались по протоколу HTTPS и с правильными поддоменами. Это улучшит безопасность вашего сайта и повысит доверие пользователей. Если у вас остались вопросы или необходима дополнительная помощь, не стесняйтесь обращаться за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...