Redirect www và non-www bằng .htaccess: Hướng dẫn đầy đủ

Những điểm chính

 

  • Lý do cần redirect: Tránh trùng lặp nội dung, hợp nhất URL để tăng sức mạnh SEO.

 

  • Khi nào nên thực hiện: Khi website có thể truy cập bằng cả hai phiên bản hoặc trước khi triển khai SEO.

 

  • Cách cấu hình .htaccess: Cung cấp đầy đủ mã chuyển hướng www → non-www và ngược lại.

 

  • Cách kiểm tra & sửa lỗi: Hướng dẫn kiểm tra redirect 301 và xử lý các lỗi thường gặp.

 

Vì sao cần chuyển hướng giữa www và non-www?

 

  • Tối ưu SEO: Google xem www.example.com và example.com là hai URL khác nhau. Nếu cả hai cùng hoạt động, website sẽ bị phân tán sức mạnh SEO và dễ dính lỗi duplicate content.

 

  • Tăng tính nhất quán: SSL, cookie, session và các dịch vụ web hoạt động ổn định hơn khi dùng một phiên bản URL duy nhất.

 

  • Cải thiện trải nghiệm người dùng: Giúp người dùng dễ ghi nhớ, tránh lỗi khi www chưa được cấu hình hoặc cấu hình sai.

 

Yêu cầu trước khi thực hiện

 

Đảm bảo bạn đáp ứng các điều kiện sau:

 

  • Website chạy trên Apache.

 

  • Thư mục gốc có file .htaccess (public_html hoặc www).

 

  • Mod_rewrite được bật.

 

  • Có quyền chỉnh sửa file qua File Manager, FTP hoặc SSH.

 

  • Luôn sao lưu file .htaccess trước khi chỉnh sửa.

 

Cách redirect www sang non-www

 

Bước 1: Xác định phiên bản muốn sử dụng

 

Chọn một dạng URL làm bản chuẩn:

 

  • Giữ non-www: https://example.com

 

  • Hoặc giữ www: https://www.example.com

 

Bước 2: Mở file .htaccess

 

  1. Truy cập File Manager hoặc FTP.

  2. Bật chế độ Show Hidden Files để thấy file .htaccess.

  3. Chọn Edit để chỉnh sửa.

 

seo, htaccess, domain

 

Bước 3: Đặt mã redirect

 

▶ Redirect từ www → non-www

 

Dán đoạn mã sau lên đầu file .htaccess:


 
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
 
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
 

Giải thích:

 

  • Kích hoạt rewrite

 

  • Kiểm tra xem URL có bắt đầu bằng "ww."

 

  • Chuyển hướng về bản non-www tương ứng

 

▶ Redirect từ non-www → www

 

Nếu muốn giữ phiên bản www, dùng mã sau:


 
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC]
 
ewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
 

Giải thích:

 

  • Nếu tên miền không bắt đầu bằng www

 

  • Thêm tiền tố www và giữ nguyên phần URL phía sau

 

Bước 4: Kiểm tra redirect

 

Cách 1: Kiểm tra thủ công

 

Mở tab ẩn danh và thử truy cập www hoặc non-www

 

 Trình duyệt tự chuyển hướng nghĩa là thành công.

 

Cách 2: Dùng công cụ kiểm tra redirect

 

  • httpstatus.io

 

  • redirect-checker.org

 

Kết quả phải trả về 301 Moved Permanently.

 

Xử lý lỗi phổ biến

 

1. Vòng lặp redirect (Too many redirects)

 

Nguyên nhân:

 

  • Trùng nhiều rule redirect

 

  • Xung đột với plugin SSL hoặc plugin redirect

 

Cách khắc phục:

 

  • Chỉ giữ 1 đoạn mã chuyển hướng trong .htaccess

 

  • Tắt plugin redirect và kiểm tra lại

 

2. Lỗi 500 Internal Server Error

 

Do sai cú pháp trong .htaccess.

 

Khắc phục:

 

  • Xóa mã vừa thêm và thử lại

 

  • Kiểm tra thiếu dấu, nhầm ký tự

 

3. Redirect không hoạt động

 

Nguyên nhân:

 

  • Cache trình duyệt

 

  • Mod_rewrite chưa bật

 

Cách xử lý:

 

  • Xóa cache + mở tab ẩn danh

 

  • Liên hệ hosting để bật mod_rewrite

 HỖ TRỢ TRỰC TUYẾN