Cotonti / Open Source PHP Content Management FrameworkContent Management Framework

Forums / National / Russian / Тех. поддержка / После установки https пишет что есть блоки ведущие на http

После установки https пишет что есть блоки ведущие на http, как отключить?

SpaceWolf
#1 2018-09-11 09:24

Доброго дня! столкнулся с проблемой. После установки сертификата и переадерсации в верху строки пишет, что сайт защищен но при этом блокирует 1 блок http. Пробывал его искать и удалять. Поиски привели в файл  system/header.php? там строка  45 if($html) $out['head_head'] = $html.$out['head_head']; 

При её удалении пропадает ошибка, но она отвечает за весь header  на сайте. Пробывал искать данный блок разными способами, так и не нашел. Подскажите как исправить! сайт: minskiepotolki.by

Roffun
#2 2018-09-11 17:41

Все написано в дебаггере браузера, если внимательно посмотреть:

Mixed Content: The page at 'https://minskiepotolki.by/' was loaded over HTTPS, but requested an insecure stylesheet 'http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800&subset=latin,cyrillic-ext'. This request has been blocked; the content must be served over HTTPS.

И лишний слеш уберите, при заходе на сайт редиректит на https://minskiepotolki.by// 

SpaceWolf
#3 2018-09-26 12:50

Roffun, ,благодарю за помощь, но проблема с http продолжается. прописал редирект,  с http на https  ниже код httacces

#HTTPS
RewriteEngine on

RewriteCond %{SERVER_PORT} !^443
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ https://minskiepotolki.by%{REQUEST_URI} [R=301,L]

 

Но если пользователь заходит по прямой ссылке  вида http://minskiepotolki.by/jobs  то он остаётся на этой странице, а поидеи должен быть перекинут на https этой же странице. Помогите исправить, я особо  в этом ничего не понимаю.

Dr2005alex
#4 2018-09-26 20:23

Так как настройки серверов у всех разные, то надо пробовать разные варианты.

Самый простой способ это средствами самого хостинга или его тех поддержки.

Или тестировать разные варианты, какой-то возможно подойдет.

Вариант 1

RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Вариант 2

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Вариант 3

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

Вариант 4

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Вариант 5

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^(.*)$ https://www.site.ru/$1 [L] 

Вариант 6

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Вариант 7

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Вариант 8

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

 

WebKaa.ru - Cotonti Relax
SpaceWolf
#5 2018-09-27 08:26

Доброго дня! Пробывал это все ранее и все что есть в поиске, ничего не помогает на http всеравно не перекидывает на https =(. На всякий случай ещё раз перепроверил что вы прислали, не помогло плачущий

Roffun
#6 2018-09-27 10:17

Я обычно использую для https вариант 8 из приведенного Алексеем. Работает на всех сайтах корректно.

Посмотрел на ваш сайт еще раз, протокол на главной работает корректно, перекидывает на https. А на внутренних, похоже нет. Проверьте чтобы редирект был в самом начале файла, до остальных правил, в самом начале разместите код из примера 8:

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

Я бы рекомендовал еще удалить дубли главной страницы:

https://minskiepotolki.by/index.php
https://minskiepotolki.by/index.html
https://www.minskiepotolki.by/index.php
https://www.minskiepotolki.by/index.html

Для этого попробуйте добавить:

# ==== РЕДИРЕКТ НА HTTPS БЕЗ WWW ====
 RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
 RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [L,R=301]

# ==== УБРАТЬ В КОНЦЕ URL INDEX.(PHP|HTML|HTM) ====
 RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
 RewriteRule ^(.*)$ https://%{HTTP_HOST} [R=301,L]

Насчет возникающего окна http, я вам уже отвечал выше, это шрифты Google через http подключаются. Протокол https подразумевает подключение всех внешних ресурсов только через защищенное соединение. Например на этой странице: _https://minskiepotolki.by/lamps для карусели подключаются шрифты Goolge незащищенным протоколом:

				<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow&v1' rel='stylesheet' type='text/css' />
				<link href='http://fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css' />

Замените на:

				<link href='https://fonts.googleapis.com/css?family=PT+Sans+Narrow&v1' rel='stylesheet' type='text/css'>
				<link href='https://fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css'>

А в /datas/config.php переменной $cfg['mainurl'] = ''  сайт указан с протоколом https ?


This post was edited by Roffun (2018-09-27 10:42, 2 months ago)
Dayver
#7 2018-09-27 18:45
#43720 Roffun:

Посмотрел на ваш сайт еще раз, протокол на главной работает корректно, перекидывает на https. А на внутренних, похоже нет.

...

А в /datas/config.php переменной $cfg['mainurl'] = ''  сайт указан с протоколом https ?

Уверен на 90% что это ключевой момент.

А что касательно http ссылок ищите их в шаблонах темы например header.tpl и еще в themes/вашатема/вашатема.rc.php, а еще в базе тоже нужно замену провести как минимум в текстах страниц (поле page_text таблицы cot_pages).

 

А вообще при переезде на https алгоритм КАК МИНИМУМ следующий:

  1. Покупка сертификата
  2. Установка сертификата на сервере
  3. В /datas/config.php переменной $cfg['mainurl'] = ''  сайт указать с протоколом https
  4. Замена всех абсолютных http ссылок в шаблонах темы (в нормально сделанном сайте в php файлах ничего менять не нужно) и вашатема.rc.php
  5. Замена всех абсолютных http ссылок в базе
  6. Редиректы в httacces

Судя из первого сообщения вы после пункта 2 перескочили к 6 от чего и проблемы

Pavel Tkachenko aka Dayver. Гик и веб мастер который делает сайты, увлекается электроникой и очень любит смотреть кино.
О себе: Я злой и страшный серый волк, я в поросятах знааааюююю толк
SpaceWolf
#8 2018-10-01 10:28

да вот что указано в данном файле  В /datas/config.php

// ========================
// Main site URL without trailing slash.
// ========================
 
$cfg['mainurl'] = 'https://minskiepotolki.by';
$cfg['site_id'] = '1e050228ee3770438a0eaa3118d43da75bd5a';
$cfg['secret_key'] = '6=6-54403a8359924da8dea358d04596c4e6cddd7e44';
$cfg['multihost'] = false;// Allow multiple host names for this site
-----------------------------
 
Всерано если я размещал ранее ссылку допустим в контакте на сайт с http адресом он откроет сайт с http но не с https ( хотя должен переадресовывать)

Added 1 week later:

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


This post was edited by SpaceWolf (2018-10-09 08:09, 2 months ago)
Dayver
#9 2018-10-10 03:37

Переадресация это не задача движка, а сервера и если у вас самостоятельно не получается настроить редиректы корректно то на этот случай Dr2005alex дал вам самое надежное решение 

#43718 Dr2005alex:

Так как настройки серверов у всех разные, то надо пробовать разные варианты.

Самый простой способ это средствами самого хостинга или его тех поддержки.

 

Да и к рекомендации Roffun вы не прислушались

#43720 Roffun:

Насчет возникающего окна http, я вам уже отвечал выше, это шрифты Google через http подключаются. Протокол https подразумевает подключение всех внешних ресурсов только через защищенное соединение. Например на этой странице: _https://minskiepotolki.by/lamps для карусели подключаются шрифты Goolge незащищенным протоколом:

				<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow&v1' rel='stylesheet' type='text/css' />
				<link href='http://fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css' />

Замените на:

				<link href='https://fonts.googleapis.com/css?family=PT+Sans+Narrow&v1' rel='stylesheet' type='text/css'>
				<link href='https://fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css'>

 

Pavel Tkachenko aka Dayver. Гик и веб мастер который делает сайты, увлекается электроникой и очень любит смотреть кино.
О себе: Я злой и страшный серый волк, я в поросятах знааааюююю толк
SpaceWolf
#10 2018-10-20 21:23

Да и к рекомендации Roffun вы не прислушались

 по данному вопросу я уже все исправил.

----------

Переадресация это не задача движка, а сервера и если у вас самостоятельно не получается настроить редиректы корректно то на этот случай Dr2005alex дал вам самое надежное решение 

ответ сервера, обращаться к разработчикам =) 

Собственно проблема только с переадресацией осталась =( как я понял тут не помогут. Благодарю за ответы, тему можно закрывать.


This post was edited by SpaceWolf (2018-10-21 18:20, 1 month ago)