in

Force SSL “HTTPS” in Codeigniter

To force ssl or https on a codeigniter application, follow this steps:

Open config file from location application/config/config.php and enable or set hooks to true like this:

$config['enable_hooks'] = TRUE;

Then create a new file named hooks.php inside the config folder (i.e. application/config/hooks.php) and add the following code in it:

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

Now create a new directory named hooks inside the application folder (i.e. application/hooks) and then create a new file named ssl.php inside the hooks folder (i.e. application/hooks/ssl.php).

Add the following code in the ssl.php file:

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()); 
} 
}

Disclaimer: This instruction was first seen in Stackoverflow in 2017 posted by Rabin Lama Dong

What do you think?

97 Points
Upvote Downvote

Leave a Reply

Your email address will not be published. Required fields are marked *

Remove H2 – Subtitle in Instant Articles for WP Plugin

How to compress files and folders in terminal