PHP — делаем проверку наличия HTTPS или редирект


Задача: Не всегда получается настроить .htaccess для принудительного редиректа на протокол HTTPS и как-то необходимо выкручиваться!

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

Обычно за роутинг отвечает корневой index.php. В нем может располагаться конструкция SWITCH–CASE или же вызов метода класса, который содержит в себе такую конструкцию. Также это может быть и абсолютно иной подход!

Для инициации проверки наличия HTTPS в адресной строке воспользуемся суперглобальным массивом $_SERVER

if(empty($_SERVER['HTTPS'])){
    $host = $_SERVER['HTTP_HOST'];
    $request_uri = $_SERVER['REQUEST_URI'];
    Header("Location: https://$host$request_uri ");
}

Логика очень проста: если отсутствует HTTPS, делать редирект на него и добавлять запрашиваемый URL (внутренняя страница или реф. ссылка сохраняется). А в ELSE мы перемещаем наши SWITCH–CASE.

Похожие записи

Как и где лучше всего изучать программирование на языке PHP
PHP — это серверный язык программирования со своими плюсами и минусами. Его давно хоронят, но он прочно закрепился в своей...
Где найти полезные материалы для изучения языков программирования?
В современном мире практически каждый человек может ощутить на себе серьезное влияние технологий. Технические средства начинают внедряться практически во все...
Laravel — стоит ли связываться с PHP фреймворком в 2020?
Laravel — масштабный PHP фреймворк, который отлично подойдет для повышения навыков разработки на данном языке и будет хорошей альтернативой не...
IDE — как найти идеальную для себя редактор кода
Каждый, кто работает с PHP кодом в определенный момент осознает, что привычные реакторы, для написания HTML / CSS / JS...
Автоматизация мелких продаж, CMS или самописная платформа?
В свое время баловался переделкой движков и плагинов финансовых проектов (CAP, MLM) и была проблема с автоматизацией продаж. Точнее, с...

Добавить комментарий