Почему не отображаются стили после установки https?

/ Просмотров: 22973
Почему не отображаются стили после установки https?

Доброго времени суток. Решил создать новый сайт. Дали ssl. Установил плагин HTTPS, включил - всё равно стили не отображаются. Может кто ещё столкнётся с этим.

Адрес моего сайта - bloghub.ru

Что посоветуете?

Комментариев: 22 RSS

Сергей, у тебя в консоле Chrome показывается сообщение:

Mixed Content: The page at 'https://bloghub.ru/' was loaded over HTTPS, but requested an insecure stylesheet 'http://bloghub.ru/application/maxsite/templates/default/assets/css/style.css'. This request has been blocked; the content must be served over HTTPS.

В общем, не удивительно, что стили не работают. У файлов неправильно формируется адрес. Точнее протокол почему-то остаётся http при формировании канонического адреса сайта.

Такое иногда бывает, если неверно настроен сервер nginx - он неправильно передаёт заголовки Apache и поэтому движок не может подхватить https протокол.

Обычно я не пользуюсь плагином HTTPS, а настраиваю редирект в htaccess (так запросы быстрее обрабатываются и экономнее ресурсы потребляются, т.к. обработка запроса не доходит до движка) и поэтому могу дать совет только для этого случая. В частности:

1. В корневом файле .htaccess нужно настроить редирект всех http-запросов на https таким образом:

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2. В начале файла /application/config/mso_config.php вставить код:

# для корректной работы с HTTPS
if(
 (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "") || 
 (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
)
{
 $_SERVER['HTTPS'] = 'on';
 $_SERVER['REQUEST_SCHEME'] = 'https';
 $config['base_url'] = str_replace("http:", "https:", $config['base_url']);
}

После этого обычно сайт начинает нормально подхватывать HTTPS и стили нормально отображаются.

Здравствуйте.

Я конечно не обсуждаю правила ресурса, просто высказываю своё мнение. По моему прятать информацию под скрытый контент несколько странно для "службы заботы".

Я конечно не обсуждаю правила ресурса, просто высказываю своё мнение. По моему прятать информацию под скрытый контент несколько странно для "службы заботы"

Vlad62, для сайта это единственный способ вовлечь посетителей в жизнь ресурса. А то берут и даже спасибо лень сказать...

Есть такое.

Пока ждал, добавил в config.php HTTP_X_FORWARDED_PROTO. Заработало. Спасибо.

Я не силен в сайтостроительстве. Может все же лучше в mso_config.php это прописать? Иди лучше не трогать раз работает?

NGINX + Apache на хостинге, нужен обязательно https.

Все перепробовал что смог найти, в итоге сделал так http://forum.max-3000.com/viewtopic.php?t=4292.

https сайт заработал ссылки внутренние верные.

Но с админкой никак не получается, при настройке сайта в админке выдает

"Основные настройки

Здесь вы можете указать основные настройки сайта.

Achtung! XSS attack! No REFERER!"

и настройка не меняется.

в фаерфоксе выдает "предупреждение системы защиты"

"Информация, введенная вами на этой странице, будет отправлена по незащищенному соединению и может быть прочитана третьей стороной"

Следовательно снова какая то часть идет по http, наверное из-за этого и возникает ошибка.

Может быть кто-то сталкивался с такой ошибкой?

P.S.

https://www.test.net/admin/options при настройке в админке

по F12 хром показывает

Mixed Content: The page at 'https://www.test.net/admin/options' was loaded over a secure connection, but contains a form which targets an insecure endpoint 'http://www.test.net/admin/options'. This endpoint should be made available over a secure connection.

получается не все по https идет и Maxsite воспринимает как атаку и блокирует.

вот тут получается не сменился адрес на https

Илья Земсков, такая же проблема, никак не могу разобраться прошу помощи.

1. В корневом файле .htaccess

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2. application/config/config.php

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");

заменил на

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" ||

isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') ? "https" : "http");

http://forum.max-3000.com/viewtopic.php?t=4292. - брал тут

Сайт заработал все ссылки https внутри страницы тоже, но с админкой проблема, часть ссылок осталась по http.

https://www.test.ru/admin/options/

выдает ошибку при изменении настроек в админке

"Здесь вы можете указать основные настройки сайта.

Achtung! XSS attack! No REFERER!"

ссылка внутри страницы на форму по http

очень нужна в админке https, помогите пожалуйста.

Илья Земсков, такая же проблема, никак не могу разобраться прошу помощи.

Саша, в моём первом комментарии в этой ветке указан рабочий код, попробовали его? Если нет, то без просмотра вашего сайта затрудняюсь сказать что и как.

Илья огромное Вам спасибо!

Четко все заработало, понимаю что частный случай, NGINX+apache настроен криво на хостинге.

На других хостингах (у REG.RU такая же связка) и на впс несколько раз ставил MS без проблем.

Если тут помогают овощам, то я попробую обратиться) Я просто чудом устроился помощником сисадмина и у меня та же проблема: битрикс не показывает стили после того как подключил ssl. Я пока не вижу закрытого решения, но если тут и вправду готовы вот так за комментарии и активную жизнь на ресурсе(которая надеюсь меня подтянет на уровень повыше), то я готов проводить тут вечера и ночи)))

Shutivets, но тут не о битрикс говорят, а о совсем иной системе управления сайтом. Но почерпнуть знаний тут можно)

Статья интересная! НО проблему решить до конца не могу. Код дает частичное решение проблемы(( Или стили слетают или в админку сложно войти grrr

А вообщем получается или зеленый замок появляется, но при этом стили слетают...либо все нормально, но замка нет((

Спасибо команде проекта, я понял как оставлять длинные, полезные для сообщества движка комментарии и после этого ваше решение мне помогло! Буду и дальше комментировать и наполнять сайт полезным контентом просто так.

Похожая проблема на сайте, решил загуглить, вроде нашел ответ, но тут нужна активность, а проблема ждут. Кто может написать какой ответ. Очень надо.

Пытаюсь на Денвере сделать попытку обновления с версии 0.77 до последней (сам сайт на хостинге по https отлично работает). И не могу в админку пробиться - Fatal error: Call to undefined function openssl_cipher_iv_length() in Z:\home\сайт\www\подкаталог\application\maxsite\common\common.php on line 4758 сразу после ввода логина-пароля и нажатия enter. Ни у кого не случалось похожего?