Я бы поддерживал два набора кода и обрабатывал принудительное перенаправление на HTTPS-страницы с помощью ловушки post_controller_constructor. Хук будет вызываться перед каждой страницей, чтобы проверить, следует ли перенаправлять посетителя на HTTPS в зависимости от его текущего местоположения на вашем сайте.
ШАГ 1
Создать файл: system / application / hooks / SecureAccount.php
<?php
class SecureAccount
{
var $obj;
//--------------------------------------------------
//SecureAccount constructor
function SecureAccount()
{
$this->obj =& get_instance();
}
//--------------------------------------------------
//Redirect to https if in the account area without it
function index()
{
if(empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] !== 'on')
{
$this->obj =& get_instance();
$this->obj->load->helper(array('url', 'http'));
$current = current_url();
$current = parse_url($current);
if((stripos($current['path'], "/account/") !== false))
{
$current['scheme'] = 'https';
redirect(http_build_url('', $current), 'refresh');
}
}
}
}
?>
ШАГ 2
Настройте путь в функции, для которой области вашего сайта должны принудительно использовать HTTPS.
ШАГ 3
Добавьте следующее в system / application / config / hooks.php
/* Force HTTPS for account area */
$hook['post_controller_constructor'] = array(
'class' => 'SecureAccount',
'function' => 'index',
'filename' => 'SecureAccount.php',
'filepath' => 'hooks',
'params' => array()
);