chuyển hướng

Chuyển hướng http sang https bằng file .htaccess

Dưới đây là hướng dẫn chi tiết cách chuyển hướng (redirect) từ http://www.domain.com sang https://www.domain.com bằng file .htaccess. Việc này giúp đảm bảo rằng tất cả lưu lượng truy cập đến trang web của bạn đều được bảo mật thông qua HTTPS.

1. Chuẩn Bị Trước Khi Thực Hiện

a. Đảm Bảo SSL Đã Được Cài Đặt và Kích Hoạt

Trước khi thiết lập chuyển hướng từ HTTP sang HTTPS, hãy chắc chắn rằng bạn đã:

  • Cài đặt chứng chỉ SSL cho tên miền của bạn. Bạn có thể sử dụng các dịch vụ như Let’s Encrypt để nhận chứng chỉ SSL miễn phí.
  • Kiểm tra xem HTTPS đã hoạt động bằng cách truy cập https://www.domain.com. Nếu trang web của bạn hiển thị đúng và không có lỗi bảo mật, bạn đã sẵn sàng để tiếp tục.

b. Sao Lưu File .htaccess

Trước khi chỉnh sửa, hãy sao lưu file .htaccess hiện tại để tránh mất mát dữ liệu nếu có sự cố xảy ra.

cp .htaccess .htaccess.backup

2. Truy Cập và Chỉnh Sửa File .htaccess

a. Truy Cập File .htaccess

  • Sử dụng FTP/SFTP: Sử dụng phần mềm FTP như FileZilla để kết nối tới server của bạn và điều hướng đến thư mục gốc của website (thường là public_html hoặc thư mục tương tự).
  • Sử dụng Trình Quản Lý File của Hosting: Nếu bạn sử dụng DirectAdmin hoặc cPanel, bạn có thể truy cập vào File Manager để chỉnh sửa file .htaccess.

b. Chỉnh Sửa File .htaccess

Mở file .htaccess bằng trình soạn thảo văn bản (như Notepad++, Sublime Text) và thêm các dòng sau vào đầu file:

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

Giải Thích Các Dòng Code:

  • RewriteEngine On: Kích hoạt mô-đun mod_rewrite của Apache.
  • RewriteCond %{HTTPS} off [OR]: Kiểm tra xem kết nối có đang sử dụng HTTPS hay không. Nếu không (off), điều kiện này thỏa mãn.
  • RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]: Kiểm tra xem tên miền có bắt đầu bằng www. hay không (^www\.). [NC] nghĩa là không phân biệt chữ hoa chữ thường.
  • RewriteRule ^(.*)$ https://www.%1/$1 [R=301,L]: Chuyển hướng tất cả các yêu cầu đến phiên bản HTTPS và giữ lại phần đường dẫn của URL. [R=301,L] nghĩa là chuyển hướng mã trạng thái 301 (permanent) và dừng xử lý các quy tắc tiếp theo.

3. Ví Dụ Cụ Thể

Giả sử bạn có tên miền www.example.com và muốn chuyển hướng tất cả lưu lượng từ http://www.example.com sang https://www.example.com.

File .htaccess Trước Khi Chỉnh Sửa:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

File .htaccess Sau Khi Chỉnh Sửa:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://www.%1/$1 [R=301,L]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Sau khi đã chỉnh sửa và lưu file .htaccess, hãy thực hiện các bước sau để đảm bảo rằng chuyển hướng hoạt động đúng:

  1. Xóa Bộ Nhớ Cache Trình Duyệt: Đôi khi trình duyệt lưu trữ bộ nhớ cache và có thể không hiển thị kết quả mới ngay lập tức.
  2. Truy Cập Trang Web Bằng HTTP:
    • Mở trình duyệt và nhập http://www.example.com.
    • Bạn nên được tự động chuyển hướng tới https://www.example.com.
  3. Kiểm Tra Các Trang Khác:
    • Thử truy cập các trang con (ví dụ: http://www.example.com/about) để đảm bảo rằng đường dẫn vẫn được giữ nguyên khi chuyển hướng.

5. Xử Lý Sự Cố

Nếu chuyển hướng không hoạt động như mong đợi, hãy kiểm tra các điều sau:

a. Kiểm Tra Module mod_rewrite Có Được Kích Hoạt Hay Không

  • Truy cập vào file cấu hình Apache (httpd.conf hoặc apache2.conf) và đảm bảo rằng dòng sau không bị comment:
    LoadModule rewrite_module modules/mod_rewrite.so
    
  • Khởi động lại Apache để áp dụng thay đổi:
    sudo systemctl restart apache2
    

    hoặc

    sudo service httpd restart
    

b. Kiểm Tra Quyền Truy Cập File .htaccess

  • Đảm bảo rằng file .htaccess có quyền truy cập đúng (thường là 644):
    chmod 644 .htaccess
    

c. Kiểm Tra Lỗi Cú Pháp trong File .htaccess

  • Sử dụng công cụ kiểm tra cú pháp hoặc xem nhật ký lỗi của Apache để xác định nếu có lỗi nào trong file .htaccess:
    tail -f /var/log/apache2/error.log
    

    hoặc

    tail -f /var/log/httpd/error_log
    

6. Mẹo và Lưu Ý

  • Sử dụng chuyển hướng 301 (Permanent): Đây là loại chuyển hướng tốt nhất cho SEO vì nó thông báo cho các công cụ tìm kiếm rằng trang đã được chuyển hướng vĩnh viễn.
  • Không sử dụng nhiều quy tắc chuyển hướng trùng lặp: Tránh việc lặp lại các quy tắc chuyển hướng trong file .htaccess để tránh vòng lặp chuyển hướng.
  • Sao lưu file .htaccess trước khi chỉnh sửa: Điều này giúp bạn khôi phục lại trạng thái ban đầu nếu có sự cố xảy ra.

7. Kết Luận

Việc chuyển hướng từ HTTP sang HTTPS bằng file .htaccess là một bước quan trọng để bảo vệ trang web của bạn và cải thiện thứ hạng SEO. Bằng cách làm theo các bước hướng dẫn trên, bạn có thể dễ dàng thiết lập chuyển hướng và đảm bảo rằng tất cả lưu lượng truy cập đến trang web của bạn đều được bảo mật.

Nếu bạn gặp bất kỳ vấn đề nào hoặc cần hỗ trợ thêm, đừng ngần ngại liên hệ với SysAdmin hoặc kiểm tra tài liệu hỗ trợ chính thức của ApacheDirectAdmin.


Chúc bạn thành công! Nếu bạn có bất kỳ câu hỏi nào thêm, hãy cho tôi biết nhé!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *