У вас так происходит, потому что вывод ссылок в 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://