Вопрос или проблема
Наша многоуровневая установка 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, следуйте приведенным ниже рекомендациям. Это позволит вам обновить ссылки на медиафайлы и обеспечить безопасность вашего сайта.
Шаги для решения проблемы
-
Обновление старых ссылок в базе данных:
Постарайтесь обновить все старые ссылки с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
следует использовать ваш фактический домен. Также, если у вас разные префиксы таблиц для подсайтов, вам может понадобиться обновить их отдельно. -
Редирект HTTP на HTTPS:
Убедитесь, что у вас настроены редиректы на уровне сервера. В файле.htaccess
добавьте следующие строки:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Эти правила перенаправят все запросы с HTTP на HTTPS.
-
Принудительное использование HTTPS в WordPress:
В файлеwp-config.php
добавьте следующие строки:define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_CONTENT', true);
Эти настройки заставят WordPress использовать HTTPS для всех страниц администратора и контента, включая ссылки на медиа.
-
Настройка 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-адресах для содержимого и плагинов.
-
Проверка результата:
После выполнения вышеперечисленных шагов убедитесь, что все медиафайлы в вашей библиотеке теперь отображаются по HTTPS. Проверьте это в админке WordPress и на фронтенде сайта.
Заключение
Следуя этим шагам, вы сможете исправить проблему с медиа-библиотекой, чтобы все ссылки отображались по протоколу HTTPS и с правильными поддоменами. Это улучшит безопасность вашего сайта и повысит доверие пользователей. Если у вас остались вопросы или необходима дополнительная помощь, не стесняйтесь обращаться за поддержкой.