1

HTTPS in codeigniter

Utilizzare HTTPS cu codeigniter

Protocollo HTTPS, ovvero hyper text transfer protocol secure è un’estensione sicura della versione HTTP (hyper text transfer protocol).

La cifratura dei dati avviene per mezzo di SSL (secure socket layer).

Per redirigere il traffico da HTTP ad HTTPS possiamo usare gli hooks, di seguito i file da modificare:

 

1. Modificare il file config: “application/config/config.php” e abilitare hooks mettendo true come valore.

$config['enable_hooks'] = TRUE;

2.creare un nuovo file chiamato hooks.php in “application/config/hooks.php” e aggiungere il codice qui sotto:

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

3. Adesso creare una nuova directory chiamata “hooks”sotto application e quindi creare un nuovo file chiamato “ssl.php”.

Editare “application/hooks/ssl.php” e aggiungere il codice sottostante:

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

 

Accedi ora al sito e verrai rediretto in HTTPS, questo è il metodo migliore, l’alternativa è l’utilizzo del file .htaccess o della URL nel file application/config.php.