Задать вопрос
@paulborodin

Wordpress. Подключение защищено не полностью. Как решить?

Установили сертификат на сайт, но в Хроме при посещении страницы выводится информация
"Подключение к сайту защищено не полностью"
Злоумышленники могут видеть изображения, которые видны вам, и изменять их в целях мошенничества.
Статус сайта "Надежный", висит до момента отрисовки сайта.
В административной панели сайт так же "Надежен".

Не могу разобраться в чем причина, буду рад любой помощи.
Адреса сайта: up-sv.ru
  • Вопрос задан
  • 27283 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@paulborodin Автор вопроса
Увы, но в моём случае данные решения пользы не принесли и сайт пал смертью храбрых.
В итоге на вновь установленный блог активировал плагин WordPress HTTPS, после чего сайт стал визуально выглядеть, как и должен.
За тем в "Адрес сайта (URL)" прописал https вместо http, и в коде страниц ссылки стали нужного формата.
Если в "Адрес WordPress (URL)", также вписать имя сайте через https, то не работает админка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
alone_lion1987
@alone_lion1987
Веб-разработчик
У вас так происходит, потому что вывод ссылок в html идет по протоколу http:// (просмотрите исходный html-код и поиском пройдитесь по http://, все ссылки там у вас загружаются по http, а нужно по https), поэтому получается такая ситуация. Нужно чтобы система генерировала ссылки по https. Это касается всего, — ссылки для подключения css, js. Ссылки, в контенте, которые уже берутся из бд.

В этом случае, в шаблоне вашего сайта, если прописаны абсолютные url, советую заменить http на https. Если используете по всюду функции вывода из бд, тогда надо менять в бд. Но лучше попробуйте такой код (если у вас сайт на wordpress). Еще есть встроенная функция, определяющая, какой протокол использует веб-сервер, для отдачи страниц, — is_ssl( ).

В файл functions.php вставьте:

add_filter('the_content', 'replace_url_to_https', 30);
function replace_url_to_https($text)
{
    $text = preg_replace('~http(://(?:www.)?' . preg_quote($_SERVER['HTTP_HOST']) . ')~', 'https\1', $text);
    return $text;
}

Вроде это должно помочь.

Еще можно запросами к бд попробовать, тогда и код выше не понадобится:

UPDATE wp_options SET option_value = replace(option_value, 'http://site.ru', 'https://site.ru') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://site.ru', 'https://site.ru');

UPDATE wp_posts SET post_content = replace(post_content, 'http://site.ru', 'https://site.ru');


Тут site.ru — ваш домен подставляете. Все абсолютные пути в базе станут с https

А везде, где ссылки выводятся не через бд, а напрямую хардкорно прописаны где либо http, замените на https://
Ответ написан
@qool_loop
установи Realy Simple SSl plugin и будет тебе счастье
Ответ написан
@ommunist
Делаю и поддерживаю мультиязычные сайты
Mixed content problem. можно решить как советует уважаемый Роман Жариков. Можно пофиксить (на самом деле то же самое внутри почти), установкрй и активацией плугина вроде Fix non-SSL links.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы