How to redirect http to https in Codeigniter

Use hooks is a good method rather than htaccess.

Please Check this may help

Config changes :- Go to application/config/config.php and enable or set hooks to true.

$config['enable_hooks'] = TRUE;

create a new file named hooks.php in application/config/hooks.php and add below code in hooks.php:-

$hook['post_controller_constructor'][] = array(                                'function' = 'redirect_ssl',                                'filename' = 'ssl.php',                                'filepath' = 'hooks'                                );

Now create a new directory with named hooks under application directory and then create new file named ssl.php in application/hooks/ssl.php and add below code to ssl.php :-

function redirect_ssl() {    $CI = get_instance();    $class = $CI-router-fetch_class();    $exclude =  array('client');  // add more controller name to exclude ssl.    if(!in_array($class,$exclude)) {      // redirecting to ssl.      $CI-config-config['base_url'] = str_replace('http://', 'https://', $CI-config-config['base_url']);      if ($_SERVER['SERVER_PORT'] != 443) redirect($CI-uri-uri_string());    }     else {      // redirecting with no ssl.      $CI-config-config['base_url'] = str_replace('https://', 'http://', $CI-config-config['base_url']);      if ($_SERVER['SERVER_PORT'] == 443) redirect($CI-uri-uri_string());    }}