RU демосайт

русскоязычная версия фриланс маркетплейса

Cовременное готовое решение сайта универсальной биржи услуг «Маркетплейс Freelance» на PHP v7.4

Смотреть демо RU

UA демосайт

україномовна версія фріланс маркетплейсу

Сучасне готове рішення сайту універсальної біржі послуг «Маркетплейс Freelance» на PHP v7.4

Дивитися демо UA
Переход с HTTP на HTTPS

Переход с HTTP на HTTPS

Настройки сервера, 🔀 у каждого поставщика услуг хостинга для ✅ вашего сайта фриланс-биржи на CMS Cotonti, могут различаться незначительно, а то и существенно и это зависит от ряда особенностей, но предметом их обсуждения должна быть отдельная статья.
Сейчас же, мы затронем именно проблемы ⛔ перехода с http на защищенный протокол HTTPS после установки сертификата безопасности.

При «переезде» с http на https алгоритм последовательных действий следующий:

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

П.С. Вообще очевидно, что перед всем серьезными правками на сайте или базе делаем резервную копию и скачиваем на компьютер.

При возникновении таких проблем, самый простой, очевидный и работающий способ решить проблему перехода с http на https — это обратиться в техподдержку хостинг-провайдера или читаем документацию по решению вопросов на вашем хостинге.
Но если с этим всё не так хорошо как хотелось бы, то пока не спешим сменить хостера.
Заходим на хостинг в папку нашего сайта фриланс биржи, открываем, если по FTP, предназначенной для этого программой (редакторы кода, например Notepad++) файл /datas/config.php и находим строку

$cfg['mainurl'] = 'http://mysite.com';

 

и в ней меняем «http» на «https». Сохраняемся, и проверяем, что изменения внесены. Потому как атрибуты прав доступа к файлу могут ограничиться лишь чтением, что зависит от настроек хостера по умолчанию или вашими собственными

Затем, в корне папки вашего сайта биржи фриланса на Котонти открываем файл «.htaccess» той же программой для редактирования кода файлов сайта. И здесь, как и ранее говорилось, о незначительных или существенных различиях настройки каждого сервера у разных хостинг провайдеров, — придется пробовать разные варианты устранения проблемы перехода с http на защищенный протокол HTTPS. В файл «.htaccess», желательно ближе к началу вносим код ниже и сохраняемся, а затем проверяем корректность отображения страниц сайта фриланс биржи после перехода на защищенный протокол HTTPS, умышленно, направляя сайт по протоколу HTTP, например вставляем в адресную строку браузера адрес вашего сайта http://mysite.com и жмем «Enter». Обратите внимание, адрес сайта вставляем без HTTPS.

Options -Indexes
RewriteEngine On
#301 редирект с домена с WWW на домен без WWW
RewriteCond %{HTTP_HOST} ^www.mysite.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]
#Перенос сайта на версию с HTTPS (для всех страниц)
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://mysite.com/$1 [R=301,L]

 

И так…
Вариант №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]

 

 


SSL — HTTPS проблема ( порт 80 )

На веб-серверах Nginx встречается проблема с портом 80 и авторизацией на сайте, например при входе в админку, то такую проблему можно решить заменой строк кода в файлах движка, чего крайне не рекомендуется делать вообще не с одним файлом из самого движка, — лучше уже смените хостера. Но если нет, то на свой страх и риск:
В файле /system/common.php

в районе 78-79 строки находим код:

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . ($sys['port']?':'.$sys['port']:'') . cot_url_sanitize($_SERVER['REQUEST_URI']);

 

меняем на:

$sys['abs_url'] = $sys['scheme'] . '://' . $sys['host'] . $sys['site_uri'];
$sys['canonical_url'] = $sys['scheme'] . '://' . $sys['host'] . cot_url_sanitize($_SERVER['REQUEST_URI']);

 

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


Задать вопрос и получить консультацию

Получить помощь можно задав свой вопрос в форме комментариев ниже.
Ваш вопрос будет изучен и ответ на него будет подготовлен по мере наличия свободного времени.
Если помощь нужна в максимально сжатые сроки, — на этот случай есть услуга: Персональная консультация и поддержка.

Благодарность и поддержка сайта по сборке «Фриланс-Биржа»

Если Вам, материалы проекта Freelance PHP Script принесли хоть какую-то помощь или пользу, и при повторном посещении нашего сайта, Вы желаете, чтобы сайт был доступен, просим понимать, что сейчас сайт держится на голом энтузиазме, а вечным он не бывает. Без Вашей посильной финансовой поддержки, небольшого доната, — техническое содержание, обслуживание, развитие и размещение новых бесплатных материалов просто станет не целесообразным.
На позитив, чашку кофе и на желание развивать проект, можно удобным способом в любой валюте закинуть на странице Сказать спасибо. Поддержать сайт.

Если, у Вас еще нет своего хостинга, - рекомендую проверенный !

Сам перепробывал много хостинг-услуг, - просто берите beget-хостинг (для России отличный вариант) Тариф "Старт" - оптимально и даже очень не дорого по ссылке https://beget.com/ru/order/start или клик по картинке

к тому же, тестирование на месяц бесплатно + сервисный домен - (свой домен прикрепить и протестирвать можно даже на бесплатном тестовом периоде хостинга)

Aльтернатива, если вам нужен хостинг именно в Украине, - ukraine.com.ua

Поддержите проект

One Reply to “Переход с HTTP на HTTPS”

  1. Может кому пригодится. по материалам с сайта
    И так начинаем разбиратся почему в <base href=»»> попадает ссылка с портом …. в файле common.php есть 78 строка из которой видим что если $sys[‘port’] пустой то все норм а если в нем будет цифра то она и попадет в урл … смотрим выше в 73 строку где идет определение этого параметра, а там условие если $sys[‘port’] == $def_port то будет все ок .

     

    Но у вас $sys[‘port’] будет равен 80 (что не верно и при этом он в итоге еще и попадает в урл) ? а  $def_port на основе ваши данных очевидно будет равен 443 (что верно поскольку сайт работает по безопасному протоколу).

     

    Разберемся по очереди, сперва то что определилось корректно на основе 54 строки

    $sys['scheme'] = strpos($_SERVER['SERVER_PROTOCOL'], 'HTTPS') === false && $_SERVER['HTTPS'] != 'on' && $_SERVER['SERVER_PORT'] != 443 && $_SERVER['HTTP_X_FORWARDED_PORT'] !== 443 ? 'http' : 'https';

    Разберем это уловие:

    ЕСЛИ strpos($_SERVER[‘SERVER_PROTOCOL’], ‘HTTPS’) === false

    И $_SERVER[‘HTTPS’] != ‘on’

    И $_SERVER[‘SERVER_PORT’] != 443

    И $_SERVER[‘HTTP_X_FORWARDED_PORT’] !== 443

    ТОГДА = http ИНАЧЕ https

    Увидели что у вас хотя бы одно условие $_SERVER[‘HTTPS’] = ‘on’ ? а потому движок корректно думает что $sys[‘scheme’] = https

    Если $sys[‘scheme’] = https то поэтому $def_port и получил значение 443.

     

    Ну и самое сладкое на десер. Почему $sys[‘port’] будет не верно равен 80 ? Ну наверное потому что в 65 строке

    $sys['port'] = $_SERVER['SERVER_PORT'];

    а у вас сервер дает [SERVER_PORT] => 80 …. почему? Почему если вы используете https протокол? Вопрос не по адресу. Я то догадываюсь но результата это не меняет — заголовки противоречивые.

     

    Так может движок корректно работать если ему сервер дает противоречивую информацию?!

     

    З.Ы. Расписал достаточно подробно что бы каждый мог при желании вникнуть и понять где ошибка. Как правило у большинства все работает корректно но не так уж и редко последнее время стали встречатся сервера где вот такая каша и у людей начинаются проблемы. А если они есть то сразу нужно смотреть на вот такие параметры которые отдает сервер $_SERVER[‘SERVER_PROTOCOL’] $_SERVER[‘HTTPS’] $_SERVER[‘SERVER_PORT’] $_SERVER[‘HTTP_X_FORWARDED_PORT’] и то что вы прописали в $cfg[‘mainurl’]

Задать вопрос или оставить комментарий