1892  1

#joomla[faq] :: як визначити протокол http/https?

Як визначити і передати у посилання значення протоколу (http або https) для системи управління контентом Joomla! ви можете дізнатися з цієї статті ...

#joomla[faq] :: як визначити протокол http/https?

Отже, вам для посилання потрібно на сторінці сайту передати точне значення протоколу передачі даних http або https. Якщо ви поставите у посилання просто http, але на вашому сайті використовується шифрування з сертифікатом SSL, і протокол у посиланні, відповідно, матиме вигляд https, на сторінку дані, які використовують простий, незахищений http, передаватись не будуть. Іншими словами, інформація по незахищеному каналу, якщо ваш сайт використовує сертифікат SSL, передана не буде, і, відповідно, вміст сторінки буде відображено криво-косо, а не так, як ви того хотіли.

В адмінпанелі CMS Joomla! є відповідний перемикач, який визначає, за яким протоколом (захищеним або незахищеним) буде відбуватися спілкування між користувачем і вашим сайтом. Цей перемикач знаходиться «Система->Загальні налаштування->Сервер->Увімкнути SSL».

Як правило, якщо ваш домен має SSL-сертифікат, він використовується і в адмінпанелі, і на самому сайті. Відповідно, вищевказаний перемикач повинен бути встановлений в положення «Весь сайт».

Якщо ж перемикач «Включити SSL» встановлено в інше положення, крім зазначеного вище, обмін інформацією, яка включає в себе і реєстраційні дані користувачів (і ваші в т.ч.) і паролі, буде проходити по незахищених каналу.

Отже, як же визначити і передати у посилання значення захищеного / не захищеного з'єднання?

Для цього виносимо нижченаведений код в окремий файл.

<?

/**
 * @package     «ArtInWeb.biz» - Full Stack Web Development
 * @subpackage  file ssl_on_off.php
 *
 * @copyright   Copyright (C) 2004 - 2018 «ArtInWeb.biz», Inc. All rights reserved.
 * @license     MIT
 */

defined('_JEXEC') or die;

if (!isset($protocol)) {

    $ssl = JFactory::getApplication()->get('force_ssl');

    if ($ssl == 0 || $ssl == 1) {
        $protocol = 'http://';
    } else {
        $protocol = 'https://';
    }

} else {

    $protocol = &$protocol;

}

// include JPATH_ROOT . "/templates/your_template/include/ssl_on_off.php";

З наведеного коду випливає, що використовуючи код:

$ssl = JFactory::getApplication()->get('force_ssl');

…ми отримуємо значення з файлу конфігурації CMS Joomla! Якщо змінна $ssl приймає значення «0» або «1» - передача даних між користувачем і сервером вашого сайту проходить по незахищеному протоколу http. У всіх інших випадках, по захищеному протоколу https.

Якщо вам сподобалася ця стаття – коментуйте, діліться в соціальних мережах (кнопки «Поділитися» ліворуч сторінки).

Удачі, Миру і Добра!

Якщо ви вже зареєстровані на цьому сайті, або вже залишали тут свої коментарі, відгуки, заявки на участь в акціях, щоб додати ще один коментар – авторизуйтесь

Додати коментар

Коментарі


«ArtInWeb.biz»
  • #18

UA :: У коментарях ви можете щось додати або уточнити, у т.ч. поділитися вашим кодом.


RU :: В комментариях вы можете что-то добавить или уточнить, в т.ч. поделиться вашим кодом.


EN :: In comments you can add or clarify something, including share your code.


© «ArtInWeb.biz» – веб-розробка повного циклу

В останнє редагувалось: 03/04/2020