Skip to main content
redirect codeigniter gambar 1

Redirect Codeigniter Http to Https Menggunakan Hook

Redirect Codeigniter Http to Https Menggunakan Hook – jika temen-temen sebelumnya sudah terbiasa melakukan redirect dengan menggunakan .htaccess , maka pada tutorial kali ini saya mencoba menggunakan metode lain yaitu dengan menggunakan fitur Hook pada codeigniter. Awal mulanya saya memiliki sebuah project yang lumayan kompleks dengan beberapa sub domain didalamnya, dan menggunakan metode htaccess ada beberapa URL yang tidak redirect secara otomatis. Akhirnya saya mencoba googling dan disarankan untuk Codeigniter menggunakan teknik ini , dan ternyata setelah saya test ke dalam project saya, hasilnya sesuai yang diharapkan.

BACA:

Pada tutorial kali ini saya menggunakan Codeigniter Versi 3 dan untuk installasi dasar seperti url friendly dan base url tidak akan saya sebutkan disini, pada tutorial ini fokus pembahasan ke pembuatan Hook di Codeigniter yang khusus untuk meredirect url anda ke https. Pastikan anda sudah menginstall SSL ke dalam project anda sebelumnya, atau jika di localhost anda bisa mengatur virtual hostnya .

Panduan Redirect Codeginiter dari Http ke Https Menggunakan Hook

1.Langkah pertama anda persiapkan project anda, dan silahkan buka file config/config.php dan cari baris $config[‘enable_hooks’] yang semula false ubah menjadi true.

$config['enable_hooks'] = TRUE;

2. Selanjutnya adalah buka file application/config/hooks.php dan tambahkan baris code dibawah ini:


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

3. Yang terakhir silahkan anda buat file dengan nama ssl.php dan letakkan di directory application/hooks/ssl.php , kemudian isikan dengan baris kode seperti di bawah ini:


<?php
defined('BASEPATH') OR exit('No direct script access allowed');

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

4. Silahkan coba dengan mengakses tanpa https, maka akan secara otomatis diredirect ke https. Selamat Mencoba

 

Catatan Penulis

Fitur Hook jika mengacu pada dokumentasi dari Codeigniter , adalah fitur yang disediakan oleh Codeigniter dimana kita bisa memodifikasi cara aplikasi kita berjalan tanpa perlu melakukan modifikasi pada file inti dari Codeigniter. Cara diatas sebagai alternatif jika dengan htaccess anda kesulitan untuk melakukan redirect dari http ke https. Jika anda membutuhkan pertanyaan silahkan tuliskan di kolom komentar, dan saya akan membalas pertanyaan anda.

Leave a Reply

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