Hướng dẫn Redirect SSL trong Codeigniter

Hướng dẫn Redirect SSL trong Codeigniter

Với các website sử dụng SSL (https) thì việc Redirect từ http sang https rất quan trọng. Nó sẽ giúp tránh được những lỗi vỡ giao diện khi người dùng truy cập vào website http.

Nhiều bạn làm chỉ cần đổi base_url thành dạng https là xong. Nếu làm như vậy thì đang thiếu 1 bước nữa rất quan trọng. Nếu người dùng vào http thì website không tự động chuyển qua https

Hôm nay tôi sẽ hướng dẫn các bạn cách Redirect sang https trong Codeigniter Framework.

Cách phổ biến nhất để Redirect là dùng .htaccess. Nhưng hôm nay tôi sẽ hướng dẫn các bạn sử dụng HOOK của Codeigniter.

Các bước thực hiện

Bước 01: Đổi base_url thành dạng https

Mở file application/config/config.php và thay thế tham số: $config['base_url'] thành dạng domain có https

Ví dụ:

$config['base_url'] = 'https://hoangan.unicode.vn';

Bước 02: Kích hoạt sử dụng HOOK

Mở file application/config/config.php và chuyển $config['enable_hooks'] thành TRUE

Cụ thể như sau:

$config['enable_hooks'] = TRUE;

Bước 03: Khai báo HOOK

Mở file application/config/hooks.php và thêm vào đoạn code sau:

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

Bước 04: Viết hàm thực thi HOOK

Vào thư mục: application/hooks tạo file ssl.php và thêm vào đoạn code sau:

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

Cuối cùng bạn chỉ cần lưu các file lại và tận hưởng thành công!

Click to rate this post!
[Total: 0 Average: 0]

Hoàng An

Tôi không phải là 1 chuyên gia lập trình, cũng không phải là 1 chuyên gia SEO. Với niềm đam mê với CNTT, tôi có thể biến ý tưởng thành sản phẩm và thích chia sẻ kiến thức cho người khác. Nếu có duyên, mời bạn đến với khoá học của tôi
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x