File .htaccess là gì? Hướng dẫn cấu hình và sử dụng chi tiết
Bạn đã bao giờ nghe nói về file .htaccess chưa? Nó được xem như một vũ khí bí mật, giúp bạn kiểm soát gần như mọi thứ trên website của mình, từ SEO, bảo mật cho đến tốc độ tải trang. Bài viết này sẽ là hướng dẫn chi tiết từ A-Z, giúp bạn hiểu rõ file .htaccess là gì và cách sử dụng nó một cách hiệu quả nhất.
File .htaccess là gì?
file .htaccess (viết tắt của Hypertext Access) là một file cấu hình hoạt động ở cấp thư mục cho các máy chủ web chạy Apache. Bạn có thể hình dung nó như một người gác cổng cho một khu vực nhất định trên website của bạn. Khi ai đó truy cập vào một thư mục chứa file .htaccess, máy chủ Apache sẽ đọc file này trước tiên để xem có quy tắc đặc biệt nào cần áp dụng hay không. Các quy tắc này có thể là chuyển hướng người dùng đến một trang khác, chặn một địa chỉ IP, yêu cầu mật khẩu, hoặc thậm chí là thay đổi cách URL hiển thị trên trình duyệt. Điều hay ho là bạn có thể có nhiều file .htaccess khác nhau trên cùng một website, mỗi file sẽ kiểm soát thư mục chứa nó và các thư mục con bên trong. Đây chính là sức mạnh giúp bạn tùy biến sâu cho từng phần của trang web.

Tại sao file .htaccess lại quan trọng với website?
Bạn có thể thắc mắc, tại sao chúng ta cần một file phức tạp như vậy? File .htaccess quan trọng vì nó cho phép bạn thực hiện nhiều tùy chỉnh nâng cao mà không cần can thiệp vào file cấu hình chính của máy chủ. Đây là một lợi thế cực lớn, đặc biệt khi bạn sử dụng các dịch vụ shared hosting. Hãy xem những lợi ích chính mà nó mang lại:
- Tốt cho SEO: Đây là một trong những ứng dụng quan trọng nhất. Bạn có thể dùng file .htaccess cho SEO để thực hiện các chuyển hướng 301 vĩnh viễn, giúp giữ lại sức mạnh của backlink khi thay đổi URL. Ngoài ra, nó còn giúp tạo ra các URL thân thiện với người dùng và công cụ tìm kiếm.
- Tăng cường bảo mật: Bạn có thể chặn IP bằng htaccess từ những kẻ tấn công hoặc spammer. Hơn nữa, bạn còn có thể chống sao chép nội dung bằng cách chặn hotlink hình ảnh, bảo vệ các file hệ thống quan trọng như
wp-config.php. - Tùy chỉnh trải nghiệm người dùng: Thay vì hiển thị các trang lỗi 404 mặc định nhàm chán, bạn có thể tạo các trang lỗi mang thương hiệu riêng, giúp giữ chân người dùng ở lại website lâu hơn.
- Cải thiện tốc độ tải trang: File .htaccess cho phép bạn kích hoạt bộ nhớ đệm trình duyệt (browser caching) và nén Gzip, giúp giảm thời gian tải trang đáng kể. Tốc độ là một yếu tố quan trọng trong cả SEO và trải nghiệm người dùng, đúng không nào?

File .htaccess nằm ở đâu trên hosting và cách tìm thấy nó
File .htaccess thường được giấu khá kỹ. Theo mặc định, các file có dấu chấm ở đầu tên (như .htaccess) là file ẩn trên các hệ thống Linux. Đó là lý do nhiều bạn không thể tìm thấy nó.
Thông thường, file .htaccess sẽ nằm ở thư mục gốc của website, thường là public_html hoặc www. Đối với các website WordPress, file htaccess wordpress cũng nằm ngay tại thư mục cài đặt chính, cùng cấp với các thư mục wp-admin, wp-content.
Để tìm thấy nó, bạn cần làm theo các bước sau:
- Đăng nhập vào cPanel của hosting.
- Tìm và mở công cụ File Manager.
- Di chuyển đến thư mục gốc của website (thường là
public_html). - Ở góc trên bên phải, nhấn vào nút Settings.
- Tích vào ô Show Hidden Files (dotfiles) và nhấn Save.
Ngay lập tức, file .htaccess sẽ hiện ra. Nếu không tìm thấy, có thể website của bạn chưa có file này. Đừng lo, phần tiếp theo sẽ hướng dẫn bạn cách tạo nó. Cách này dễ lắm, bạn thử xem!

Hướng dẫn cách tạo và chỉnh sửa file .htaccess an toàn
Việc chỉnh sửa file .htaccess có thể gây ra lỗi 500 (Internal Server Error) nếu bạn làm sai. Vì vậy, hãy luôn tuân thủ nguyên tắc vàng: Luôn sao lưu (backup) file .htaccess gốc trước khi thực hiện bất kỳ thay đổi nào. Chỉ cần tải file về máy tính là bạn đã có một bản dự phòng an toàn.
Cách tạo file .htaccess mới
- Trong File Manager của cPanel, nhấn vào + File ở góc trên bên trái.
- Trong ô New File Name, bạn gõ chính xác là
.htaccess(bao gồm cả dấu chấm ở đầu). - Nhấn Create New File.
Cách chỉnh sửa file .htaccess
- Tìm file .htaccess trong File Manager.
- Nhấp chuột phải vào file và chọn Edit.
- Một hộp thoại cảnh báo có thể hiện ra, hãy nhấn Edit một lần nữa để tiếp tục.
- Bây giờ, bạn có thể thêm hoặc sửa các đoạn mã. Sau khi hoàn thành, nhấn Save Changes.
Một mẹo nhỏ là bạn nên thêm từng đoạn mã một. Sau mỗi lần lưu, hãy tải lại website để kiểm tra xem có lỗi không. Nếu có lỗi, bạn chỉ cần xóa đoạn mã vừa thêm là mọi thứ sẽ trở lại bình thường. Bạn nghĩ cách này có hiệu quả không?

Tổng hợp các lệnh .htaccess cơ bản và thông dụng nhất
Sức mạnh của file .htaccess nằm ở các lệnh htaccess hay còn gọi là các chỉ thị (directives) mà bạn thêm vào. Có hàng trăm lệnh khác nhau, nhưng bạn chỉ cần nắm vững một số lệnh cơ bản là đã có thể làm được rất nhiều việc. Các lệnh này thường bắt đầu bằng một từ khóa và theo sau là các tham số. Ví dụ, Redirect 301 là một lệnh để chuyển hướng.
Các lệnh thường được chia thành các nhóm chức năng chính:
- RewriteEngine: Đây là module mạnh nhất, cho phép bạn viết lại URL, tạo link thân thiện, và thực hiện các chuyển hướng phức tạp.
- Redirect: Dùng cho các chuyển hướng đơn giản.
- ErrorDocument: Tùy chỉnh trang báo lỗi.
- Order, Deny, Allow: Dùng để thiết lập quy tắc truy cập, ví dụ như chặn IP.
- Header, ExpiresByType: Dùng để kiểm soát bộ nhớ đệm của trình duyệt.
Trong các phần tiếp theo, chúng ta sẽ đi sâu vào từng nhóm lệnh này với các ví dụ cụ thể để bạn dễ dàng áp dụng cho website của mình. Hãy sẵn sàng để biến website của bạn trở nên chuyên nghiệp hơn nhé!

Chuyển hướng (Redirect) URL với .htaccess
Chuyển hướng là một trong những ứng dụng phổ biến và quan trọng nhất của file .htaccess, đặc biệt là cho SEO. Khi bạn thay đổi cấu trúc URL, việc chuyển hướng 301 bằng .htaccess sẽ thông báo cho công cụ tìm kiếm rằng trang đã được chuyển vĩnh viễn, giúp bạn giữ lại thứ hạng.
Chuyển hướng 301 một URL cũ sang URL mới
Đây là trường hợp đơn giản nhất. Giả sử bạn muốn chuyển hướng domain.com/bai-viet-cu.html sang domain.com/bai-viet-moi/.
Redirect 301 /bai-viet-cu.html http://www.domain.com/bai-viet-moi/
Chuyển hướng từ non-www sang www
Việc hợp nhất tên miền về một phiên bản duy nhất (có www hoặc không có www) rất tốt cho SEO. Để chuyển tất cả truy cập từ domain.com sang www.domain.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
Chuyển hướng từ HTTP sang HTTPS
Sau khi cài đặt chứng chỉ SSL, bạn cần bắt buộc tất cả truy cập phải qua giao thức HTTPS bảo mật.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Những đoạn mã này trông có vẻ phức tạp, nhưng bạn chỉ cần sao chép, dán và thay đổi tên miền của mình là được. Rất tiện lợi phải không nào?

Tùy chỉnh các trang báo lỗi
Bạn đã bao giờ truy cập một link bị hỏng và nhận được một trang lỗi 404 trắng trơn, trông rất thiếu chuyên nghiệp chưa? Điều này tạo ra trải nghiệm không tốt cho người dùng. Với .htaccess, bạn có thể thay thế những trang lỗi mặc định này bằng các trang do chính bạn thiết kế.
Ví dụ, bạn có thể tạo một file HTML tên là loi-404.html với thiết kế thân thiện, có logo, menu điều hướng và một thông báo hữu ích. Sau đó, bạn chỉ cần thêm dòng lệnh sau vào file .htaccess:
ErrorDocument 404 /loi-404.html
Từ giờ, bất cứ khi nào người dùng truy cập một URL không tồn tại, họ sẽ thấy trang loi-404.html đẹp đẽ của bạn.
Tương tự, bạn cũng có thể tùy chỉnh cho các mã lỗi khác:
- Lỗi 403 (Forbidden/Cấm truy cập): Xảy ra khi người dùng cố gắng truy cập vào một thư mục hoặc file mà họ không có quyền.
ErrorDocument 403 /loi-cam-truy-cap.html - Lỗi 500 (Internal Server Error): Lỗi máy chủ nội bộ, thường do mã nguồn hoặc cấu hình sai.
apache
ErrorDocument 500 /loi-may-chu.html
Việc tạo các trang lỗi tùy chỉnh không chỉ giúp giữ chân khách truy cập mà còn thể hiện sự chuyên nghiệp của website bạn.

Tăng cường bảo mật website
Bảo mật luôn là ưu tiên hàng đầu. File .htaccess cung cấp nhiều lớp bảo vệ hiệu quả mà bạn có thể triển khai ngay lập tức.
Chặn một hoặc nhiều địa chỉ IP
Nếu bạn phát hiện một IP nào đó đang cố gắng tấn công hoặc spam website, hãy chặn IP bằng htaccess ngay lập tức.
# Chặn một IP cụ thể
Order allow,deny
Allow from all
Deny from 123.45.67.89
# Chặn nhiều IP
Deny from 123.45.67.89 98.76.54.32
Chống hotlinking
Hotlinking là khi một website khác sử dụng trực tiếp link ảnh của bạn trên trang của họ. Điều này làm tiêu tốn băng thông hosting của bạn. Đoạn mã sau sẽ ngăn chặn điều này, chỉ cho phép hiển thị ảnh nếu nó được yêu cầu từ chính website của bạn.
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomain.com [NC]
RewriteRule .(jpg|jpeg|png|gif)$ - [NC,F,L]
Đừng quên thay yourdomain.com bằng tên miền của bạn.
Bảo vệ các file quan trọng
Các file như wp-config.php (trong WordPress) hay chính file .htaccess chứa thông tin nhạy cảm. Bạn có thể ngăn chặn truy cập trực tiếp vào chúng từ trình duyệt.
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
<Files wp-config.php>
Order allow,deny
Deny from all
</Files>
Chỉ với vài dòng lệnh đơn giản, website của bạn đã trở nên an toàn hơn rất nhiều.

Tối ưu tốc độ website
Tốc độ tải trang là một yếu tố xếp hạng quan trọng của Google và cũng ảnh hưởng trực tiếp đến tỷ lệ chuyển đổi. File .htaccess có thể giúp bạn cải thiện hiệu suất website một cách đáng kể.
Bật nén Gzip
Nén Gzip giúp giảm kích thước các file text như HTML, CSS, JavaScript trước khi gửi từ máy chủ đến trình duyệt của người dùng. Kích thước file nhỏ hơn đồng nghĩa với việc tải nhanh hơn. Hãy thêm đoạn mã sau vào .htaccess:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
Kích hoạt bộ nhớ đệm trình duyệt
Đoạn mã này yêu cầu trình duyệt của người dùng lưu trữ các file tĩnh (như ảnh, CSS, JS) trong một khoảng thời gian nhất định. Khi họ truy cập lại trang của bạn, trình duyệt sẽ tải các file này từ bộ nhớ đệm thay vì phải tải lại từ máy chủ, giúp tăng tốc độ tải trang lên rất nhiều.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
</IfModule>
Việc cấu hình file .htaccess để tối ưu tốc độ là một kỹ thuật mà bất kỳ nhà quản trị web nào cũng nên biết. Bạn còn câu hỏi nào về các lệnh .htaccess không? Hãy để lại bình luận bên dưới nhé!
Nếu bạn cảm thấy những kỹ thuật này quá phức tạp và cần một website được thiết kế chuyên nghiệp, tối ưu toàn diện ngay từ đầu, hãy liên hệ với Việt Thắng để được tư vấn thiết kế web và hỗ trợ tốt nhất.