Определение HTTPS-подключения

Содержание...

Фреймворк Webasyst определяет факты обращения к серверу по HTTPS при помощи метода waRequest::isHttps(). Этот метод учитывает значения переменных из массива $_SERVER.

Если на сервере используется нестандартный набор переменных или их значений, то фреймворк может ошибаться в определении подключений через HTTPS. Из-за этого неправильно формируются абсолютные адреса ссылок и не работают редиректы.

Если нельзя адаптировать конфигурацию веб-сервера под логику метода waRequest::isHttps(), то можно адаптировать фреймворк под набор переменных веб-сервера. Для этого в файле wa-config/SystemConfig.class.php добавьте в класс SystemConfig публичный метод init(), как показано в примере.

class SystemConfig extends waSystemConfig
{
    protected function init()
    {
        // Обязательный вызов метода родительского класса!
        parent::init();
    
        // Опишите логику определения подключения через HTTPS
        // для своего сервера
        $https_condition = /* ... */;
        
        if ($https_condition) {
            // При положительном значении переменной 'HTTP_X_HTTPS'
            // фреймворк "считает", что к серверу обращаются через HTTPS.
            // См. код метода waRequest::isHttps().
            $_SERVER['HTTP_X_HTTPS'] = true;
        }
    }
}