Hướng Dẫn Redirect HTTP Sang HTTPS Bằng .htaccess
Thịnh Văn Hạnh
29/04/2026
3390 Lượt xem
Chia sẻ bài viết
Hiện này việc sử dụng SSL đang là xu thế bắt buộc đối với các website thì nhu cầu cài đặt và cấu hình càng trở nên phổ biến với nhiều quản trị website. Khi mà việc cài đặt SSL lên host có thể thực hiện đơn giản bằng các hướng dẫn trực quan, hoặc được hỗ trợ của đơn vị bán SSL thì việc cấu hình chuyển hướng http sang https bằng .htaccess cho website không phải ai cũng biết làm.
Dưới đây là BKNS hướng dẫn cơ bản việc chuyển hướng từ http sang https trên các hosting Linux sử dụng Webserver là Apache hoặc LiteSpeed:
Tóm Tắt Bài Viết
File .htaccess Là Gì?
File .htaccess là file cấu hình phân tán của Apache và LiteSpeed, đặt tại thư mục gốc website, cho phép quản trị viên kiểm soát hành vi server ở cấp thư mục bao gồm redirect, bảo mật, nén dữ liệu và rewrite URL mà không cần chỉnh sửa file cấu hình chính của server.
.htaccess hoạt động như một lớp cấu hình “cục bộ”: mỗi khi có request gửi đến server, Apache sẽ đọc file này trước khi xử lý, cho phép áp dụng các quy tắc tùy chỉnh ngay tại thư mục chứa nó. Điều này giải thích tại sao một đoạn code nhỏ trong .htaccess lại có thể điều hướng toàn bộ traffic HTTP của website sang HTTPS một cách hiệu quả.

HTTP Và HTTPS Khác Nhau Như Thế Nào?
HTTP và HTTPS là hai giao thức truyền tải dữ liệu giữa trình duyệt và server, trong đó HTTP truyền dữ liệu dạng plain text (không mã hóa) còn HTTPS mã hóa toàn bộ dữ liệu qua lớp TLS/SSL, tạo ra kết nối an toàn và bảo mật. Đây chính là ranh giới căn bản giữa “giao thức không mã hóa” và “kết nối an toàn”
Bảng dưới đây so sánh trực tiếp các tiêu chí quan trọng giữa HTTP và HTTPS:
| Tiêu chí | HTTP | HTTPS |
|---|---|---|
| Mã hóa dữ liệu | Không mã hóa (plain text) | Mã hóa qua TLS/SSL |
| Cổng kết nối | Port 80 | Port 443 |
| Biểu tượng trình duyệt | 🔓 “Not Secure” (Chrome cảnh báo đỏ) | 🔒 Khóa xanh an toàn |
| Tác động SEO | Google giảm ưu tiên index | Google ưu tiên rank cao hơn |
| Bảo vệ dữ liệu người dùng | Dễ bị nghe lén (Man-in-the-Middle) | Được mã hóa đầu cuối |
| Tốc độ (HTTP/2) | Không hỗ trợ HTTP/2 | Hỗ trợ HTTP/2 (nhanh hơn) |
Điều Kiện Trước Khi Cấu Hình Redirect Trong .htaccess
Trước khi chỉnh sửa bất kỳ dòng nào trong .htaccess, có 3 điều kiện bắt buộc bạn cần xác nhận để tránh tình trạng redirect loop hoặc lỗi 500 Internal Server Error làm sập website.
- SSL Certificate đã được cài đặt thành công: Đây là điều kiện tiên quyết quan trọng nhất. Nếu chứng chỉ SSL chưa được kích hoạt, redirect sang HTTPS sẽ khiến trình duyệt báo lỗi ERR_SSL_PROTOCOL_ERROR. Cách kiểm tra nhanh nhất: mở trình duyệt, gõ trực tiếp https://domain.com (thay domain.com bằng tên miền của bạn) — nếu trang load bình thường và hiển thị biểu tượng ổ khóa, SSL đã sẵn sàng.
- Module mod_rewrite đã được bật: File .htaccess sử dụng RewriteEngine để xử lý redirect, và module này phải được kích hoạt trên server. Hầu hết các shared hosting hiện nay đều bật sẵn mod_rewrite. Tuy nhiên, nếu chạy server riêng (VPS/Dedicated), bạn có thể kiểm tra bằng lệnh apache2ctl -M | grep rewrite — nếu thấy rewrite_module trong kết quả là module đã hoạt động.
- Backup file .htaccess hiện tại: Trước khi chỉnh sửa, hãy tải file .htaccess gốc về máy tính cá nhân. Đây là thao tác đơn giản nhưng cực kỳ quan trọng: một lỗi nhỏ trong cú pháp .htaccess có thể gây lỗi 500 cho toàn bộ website. Khi đó, bạn chỉ cần upload lại file backup để phục hồi ngay lập tức.
Các Cách Redirect HTTP Sang HTTPS Bằng File .htaccess
Để redirect HTTP sang HTTPS bằng file .htaccess, bạn thực hiện theo 3 bước: mở file .htaccess, chèn đoạn code redirect phù hợp với môi trường, lưu và kiểm tra và kết quả mong đợi là toàn bộ request HTTP sẽ tự động chuyển sang HTTPS với mã trạng thái 301.
Dưới đây là hướng dẫn chi tiết theo từng môi trường phổ biến nhất, giúp bạn áp dụng đúng đoạn code cho trường hợp của mình mà không gây xung đột với cấu hình hiện có.
1. Cách Redirect HTTP Sang HTTPS Trên Hosting Apache/LiteSpeed
Với hosting Apache hoặc LiteSpeed không sử dụng CMS, đoạn code redirect chuẩn và hoạt động ổn định nhất là:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]</IfModule>
Vị trí chèn code: Đặt đoạn code này ở đầu file .htaccess, trước tất cả các rule khác. Điều này đảm bảo redirect HTTPS được xử lý ưu tiên, tránh các rule phía sau can thiệp vào quá trình chuyển hướng.
Cách thực hiện:
- Đăng nhập vào File Manager trên cPanel hoặc kết nối qua FTP (FileZilla, WinSCP)
- Điều hướng đến thư mục gốc của website (thường là public_html)
- Tìm file .htaccess — nếu không thấy, bật tùy chọn “Show Hidden Files” trong File Manager
- Nhấp chuột phải → Edit (không download rồi upload lại, dễ bị lỗi encoding)
- Chèn đoạn code vào đầu file, trước dòng đầu tiên hiện có
- Lưu file và kiểm tra ngay bằng cách truy cập http://domain.com
Như thế là Website đã được chuyển hướng http sang https bằng .htaccess thành công rồi đó! Chúc các bạn thành công
2. Cách Redirect HTTP Sang HTTPS Trong File .htaccess Của WordPress
Với WordPress, file .htaccess đã có sẵn một block mặc định do WordPress tạo ra. Bạn cần chèn rule redirect HTTPS bên trong block này để tránh xung đột, không được tạo block <IfModule mod_rewrite.c> riêng biệt bên ngoài.
Đoạn code .htaccess hoàn chỉnh cho WordPress sau khi thêm redirect HTTPS:
Làm Thế Nào Để Kiểm Tra Redirect HTTP Sang HTTPS Đã Hoạt Động Đúng Chưa?
Để kiểm tra redirect HTTP sang HTTPS đã hoạt động đúng hay chưa, bạn có 5 phương pháp xác nhận từ đơn giản đến chuyên sâu, giúp phát hiện cả lỗi cơ bản lẫn lỗi ẩn mà mắt thường không thấy được.
1.Kiểm tra trực tiếp trên trình duyệt (nhanh nhất):
Gõ http://domain.com vào thanh địa chỉ và nhấn Enter. Nếu redirect hoạt động đúng, trình duyệt sẽ tự động chuyển sang https://domain.com và hiển thị biểu tượng ổ khóa. Đây là cách nhanh nhất để xác nhận redirect đang chạy, nhưng không cho biết mã trạng thái cụ thể.
2. Dùng công cụ kiểm tra online:
Truy cập các công cụ như httpstatus.io hoặc redirect-checker.org, nhập URL dạng http://domain.com và kiểm tra. Công cụ sẽ hiển thị toàn bộ redirect chain (chuỗi chuyển hướng) với mã trạng thái tương ứng. Bạn cần thấy 301 Moved Permanently và URL đích là https://domain.com — không có thêm bước redirect nào khác (nếu có nhiều bước là đang xảy ra redirect chain cần khắc phục).
3. Kiểm tra qua Chrome DevTools:
Nhấn F12 → chọn tab Network → gõ http://domain.com vào thanh địa chỉ → Enter. Trong tab Network, tìm request đầu tiên với URL dạng http:// — click vào và xem mục Status Code trong phần Headers. Kết quả đúng là 301 Moved Permanently, kèm theo header Location: https://domain.com.
4. Kiểm tra bằng lệnh curl (dành cho developer):
bash
curl -I http://domain.com
Kết quả đúng sẽ trả về:
HTTP/1.1 301 Moved Permanently
Location: https://domain.com/
Nếu thấy 302 Found thay vì 301 bạn cần kiểm tra lại đoạn code trong .htaccess, rất có thể đang dùng [R] hoặc [R=302] thay vì [R=301].
5. Xác nhận qua Google Search Console:
Sau khi redirect hoạt động, vào Google Search Console → Coverage → kiểm tra không còn URL HTTP nào trong mục “Valid” hoặc “Error”. Nếu vẫn thấy URL HTTP, Google chưa crawl lại chờ thêm 3–7 ngày hoặc dùng tính năng Request Indexing cho từng URL quan trọng.
>> Tìm hiểu thêm:





































