File .htaccess
là một công cụ quan trọng trên máy chủ web Apache, giúp bạn dễ dàng tùy chỉnh và quản lý các thiết lập của trang web mà không cần thay đổi trực tiếp file cấu hình chính của máy chủ. Với file này, bạn có thể thực hiện nhiều tác vụ quan trọng như tùy chỉnh trang lỗi để cải thiện trải nghiệm người dùng, thiết lập chuyển hướng URL giúp tối ưu SEO, hoặc bảo vệ thư mục bằng mật khẩu nhằm hạn chế quyền truy cập trái phép. Ngoài ra, .htaccess
còn giúp tối ưu hiệu suất website bằng cách kích hoạt bộ nhớ đệm, nén dữ liệu với gzip để tăng tốc độ tải trang, đồng thời tăng cường bảo mật bằng cách chặn truy cập từ các IP cụ thể, ngăn chặn hotlinking và bảo vệ trang web trước một số cuộc tấn công phổ biến.
Để có thể thực hành hiệu quả với file .htaccess, bạn nên triển khai website trên một máy chủ riêng ảo (VPS). Nếu bạn đang tìm giải pháp tiết kiệm chi phí, hãy tham khảo các gói VPS giá rẻ của chúng tôi – phù hợp cho cả người mới bắt đầu và các doanh nghiệp nhỏ.
Tiếp theo, DataOnline sẽ hướng dẫn bạn học cách kích hoạt và sử dụng file .htaccess
trên Apache, từ việc tạo file, chỉnh sửa đến áp dụng các quy tắc hữu ích để tối ưu tốc độ và bảo mật trang web của mình. Việc hiểu và sử dụng đúng cách file .htaccess
sẽ giúp bạn kiểm soát tốt hơn trang web, cải thiện hiệu suất và bảo vệ dữ liệu một cách hiệu quả.
Yêu cầu tiên quyết
Nếu bạn muốn thực hành sử dụng file .htaccess
bằng cách làm theo các ví dụ trong hướng dẫn này, bạn sẽ cần:
● Một máy chủ Ubuntu 20.04 được thiết lập với người dùng không phải root có đặc quyền sudo
và tường lửa được bật. Bạn có thể làm điều này bằng cách làm theo hướng dẫn thiết lập máy chủ ban đầu Ubuntu 20.04.
● Máy chủ web Apache được cài đặt trên máy chủ Ubuntu của bạn. Tìm hiểu cách thiết lập với hướng dẫn của chúng tôi về Cách Cài đặt Máy chủ Web Apache trên Ubuntu 20.04. Hãy chắc chắn hoàn thành Bước 5 và có một file virtual host cho tên miền của bạn. Hướng dẫn này sẽ đề cập đến your_domain làm ví dụ xuyên suốt và sử dụng /etc/apache2/sites-available/your_domain.conf
cho file virtual host.
● Nếu bạn muốn thực hành với một tên miền (tùy chọn), bạn có thể thiết lập bằng cách mua tên miền trên Namecheap, lấy miễn phí trên Freenom, hoặc sử dụng nhà đăng ký tên miền mà bạn chọn. Bạn cũng sẽ cần cả hai bản ghi DNS sau đây được thiết lập cho máy chủ của bạn: hai bản ghi A, một với your_domain
và một với www.your_domain
trỏ đến địa chỉ IP công khai của máy chủ của bạn. Làm theo phần giới thiệu về DNS DataOnline để biết chi tiết về cách thêm chúng.
● Nếu bạn cũng muốn bảo mật virtual host của mình, bạn có thể làm như vậy với chứng chỉ tin cậy miễn phí, như trong hướng dẫn Let’s Encrypt của chúng tôi cho Apache. Tuy nhiên, nếu bạn không có tên miền, bạn có thể sử dụng chứng chỉ tự ký thay thế. Điều này cung cấp cùng loại mã hóa, nhưng không có xác thực tên miền. Làm theo hướng dẫn SSL tự ký cho Apache để thiết lập điều này.
Sau khi bạn hoàn tất thiết lập, bạn có thể thực hành kích hoạt và tạo file .htaccess
trong các bước tiếp theo.
Kích hoạt file .htaccess
Nếu bạn có quyền truy cập vào cài đặt máy chủ, bạn có thể chỉnh sửa cấu hình Apache để cho phép file .htaccess
ghi đè các cấu hình trang web tiêu chuẩn.
Bắt đầu bằng cách mở file virtual host apache2/sites-available/your_domain.conf
bằng trình soạn thảo văn bản ưa thích của bạn. Ở đây, chúng ta sẽ sử dụng nano
:
sudo nano /etc/apache2/sites-available/your_domain.conf
Giả sử bạn đã làm theo Bước 5 của hướng dẫn cài đặt Apache, file này sẽ chứa nội dung sau:
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Thêm khối nội dung Directory
sau vào trong khối VirtualHost
:
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Dòng quan trọng nhất của khối nội dung Directory
này là AllowOverride All
, nó cho phép sử dụng các file .htaccess
. Sau khi bạn đã thêm thông tin này, lưu và đóng file. Nếu bạn đang sử dụng nano
, bạn có thể làm điều này bằng cách nhấn CTRL + X
sau đó Y
và ENTER
.
Tiếp theo, khởi động lại Apache:
sudo service apache2 restart
Bây giờ cài đặt cấu hình của bạn đã được cập nhật để cho phép sử dụng file .htaccess
, trong bước tiếp theo bạn sẽ tạo một file.
Tạo file .htaccess
Để tạo file .htaccess
trong terminal của bạn, bạn cần điều hướng đến thư mục gốc web của bạn. Thư mục gốc web của bạn là nơi đặt file .htaccess
để các cấu hình của bạn có thể được thực thi đúng cách cho trang web của bạn. Vị trí đúng của file .htaccess
rất quan trọng vì các cấu hình trong file đó ảnh hưởng đến mọi thứ trong thư mục của nó và các thư mục sau nó. Điều này có nghĩa là nếu bạn đang phục vụ một vài trang web khác nhau trên cùng một máy chủ Apache, file .htaccess
của bạn nên được đặt trong thư mục gốc web cụ thể cho trang web cụ thể đó.
Nếu bạn đã làm theo các yêu cầu tiên quyết, thư mục gốc web của bạn sẽ ở vị trí sau: /var/www/your_domain/.htaccess
. Để tạo file .htaccess
cho trang web của bạn, hãy chạy lệnh sau:
sudo nano /var/www/your_domain/.htaccess
Bây giờ bạn đã học một vài cách để tạo file .htaccess
, tiếp theo chúng ta sẽ xem xét một số cách sử dụng phổ biến của trang .htaccess
.
Các cách sử dụng phổ biến cho trang .htaccess
Có 5 cách sử dụng phổ biến cho trang .htaccess
trên trang web của bạn:
Mod_Rewrite
Một trong những khía cạnh hữu ích nhất của file .htaccess
là mod_rewrite
. Bạn có thể sử dụng file .htaccess
để chỉ định và thay đổi cách hiển thị URL và trang web trên các trang của bạn cho người dùng của bạn. Tìm hiểu thêm về cách bạn có thể làm điều này với hướng dẫn của chúng tôi về Cách Thiết lập mod_rewrite
.
Xác thực
Để thiết lập xác thực bảo mật với .htaccess
, bạn có thể tạo một file mật khẩu có tên .htpasswd
để xác thực người dùng. Thực hiện thay đổi này sẽ tạo ra một form mật khẩu yêu cầu khách truy cập trang web nhập mật khẩu nếu họ muốn truy cập vào các phần nhất định của trang web. Khi tạo file này, hãy chắc chắn lưu trữ nó ở một thư mục khác với thư mục web vì lý do bảo mật.
Để tạo tệp, hãy chạy lệnh htpasswd
và bao gồm tùy chọn -c
, cùng với tên người dùng để tạo tệp htpasswd
được chỉ định. Sau đó, một lời nhắc sẽ yêu cầu bạn nhập mật khẩu. Bạn có thể thêm nhiều dòng vào tệp htpasswd
nếu cần, nhưng hãy đảm bảo rằng mỗi người dùng có một dòng riêng biệt. Ví dụ sau minh họa cách tạo một mục nhập mới trong tệp, trong trường hợp này là cho người dùng sammy
:
sudo htpasswd -c /etc/apache2/.htpasswd sammy
Bạn có thể kiểm tra nội dung của file này bằng cách chạy cat /etc/apache2/.htpasswd
, và nó sẽ xuất ra tên người dùng và mật khẩu đã mã hóa cho mỗi bản ghi bạn đã thêm.
Sau khi bạn đã thêm người dùng mong muốn, tiếp theo mở file .htaccess
. Nếu bạn đã làm theo hướng dẫn đầu tiên, nó sẽ nằm ở vị trí sau:
sudo nano /var/www/your_domain/.htaccess
Hãy nhớ rằng trong ví dụ này chúng ta đang hạn chế toàn bộ thư mục gốc dựa trên /var/www/your_domain
, nhưng điều này có thể được đặt trong bất kỳ thư mục nào mà bạn muốn hạn chế quyền truy cập.
Sau khi file này được mở, thêm nội dung sau và lưu các thay đổi để bắt đầu sử dụng chức năng mật khẩu:
/var/www/your_domain/.htaccess
AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user
Để tìm hiểu thêm, hãy đọc hướng dẫn của chúng tôi về Cách Thiết lập Xác thực Bằng Mật khẩu với Apache.
Trang lỗi tùy chỉnh
File .htaccess
bổ sung cho phép bạn tạo các trang lỗi tùy chỉnh cho trang web của bạn. Một số lỗi phổ biến nhất là:
● 400 Bad Request
● 401 Authorization Required
● 403 Forbidden Page
● 404 File not Found
● 500 Internal Error
Để làm cho trang trở nên thân thiện với người dùng và cung cấp nhiều thông tin hơn cho khách truy cập so với trang lỗi mặc định của máy chủ, bạn có thể sử dụng tệp .htaccess để tạo các trang lỗi tùy chỉnh. Hãy đọc thêm trong bài hướng dẫn của chúng tôi về cách cấu hình Apache để sử dụng các trang lỗi tùy chỉnh.
Kiểu MIME
Trong trường hợp trang web của bạn có một số file ứng dụng mà máy chủ của bạn không cung cấp để thiết lập, bạn có thể thêm kiểu Multipurpose Internet Mail Extensions (MIME) vào máy chủ Apache của bạn trong file .htaccess
với mã sau:
/var/www/your_domain/.htaccess
AddType audio/mp4a-latm .m4a
Hãy chắc chắn thay thế ứng dụng và phần mở rộng file bằng kiểu MIME mà bạn muốn hỗ trợ. Đối với ví dụ này, chúng tôi đã chỉ định kiểu MIME của file âm thanh.
SSI
Server side includes (SSI) là một công cụ tiết kiệm thời gian tuyệt vời trên một trang web. Một trong những cách sử dụng phổ biến nhất của SSI là cập nhật một số lượng lớn trang với một số dữ liệu cụ thể mà không cần phải cập nhật từng trang riêng lẻ. Ví dụ, nếu bạn muốn thay đổi một trích dẫn ở cuối trang.
Để kích hoạt SSI, chèn mã sau vào file .htaccess
của bạn:
/var/www/your_domain/.htaccess
AddType text/html .shtml AddHandler server-parsed .shtml</pre>
Những dòng này cho .htaccess
biết rằng các file .shtml
là hợp lệ, với dòng thứ hai cụ thể làm cho máy chủ phân tích cú pháp tất cả các file kết thúc bằng .shtml
cho bất kỳ lệnh SSI nào.
Tuy nhiên, nếu bạn có nhiều trang .html
mà bạn không muốn đổi tên sang định dạng .shtml
, bạn có thể sử dụng một chiến thuật khác để phân tích chúng cho các lệnh SSI, đó là XBitHack
.
Bạn có thể sử dụng chiến thuật XBitHack
này bằng cách thêm dòng sau vào tệp .htaccess
để yêu cầu Apache kiểm tra tất cả các tệp .html
có quyền thích hợp cho SSI:
/var/www/your_domain/.htaccess
XBitHack on
Để làm cho một trang đủ điều kiện cho XBitHack
, sử dụng lệnh chmod
để thay đổi quyền:
chmod +x pagename.html
Bây giờ bạn đã hiểu một vài cách sử dụng phổ biến cho trang .htaccess
, tiếp theo bạn sẽ tìm hiểu thêm về tác động của file .htaccess
đến tốc độ và bảo mật.
Tốc độ và bảo mật với file .htaccess
Mặc dù tệp .htaccess
có thể được sử dụng để cải thiện trang web, tuy nhiên có hai yếu tố cần lưu ý mà nó có thể ảnh hưởng: tốc độ và bảo mật.
Về tốc độ, tệp .htaccess
có thể làm chậm máy chủ của bạn, nhưng đối với hầu hết các máy chủ, sự thay đổi này có lẽ không thể nhận thấy. Điều này có thể do vị trí của trang, vì tệp .htaccess ảnh hưởng đến các trang trong thư mục của nó và tất cả các thư mục con phía sau. Nghĩa là mỗi khi một trang được tải, máy chủ sẽ quét thư mục chứa trang đó và tất cả các thư mục cấp trên cho đến khi đạt đến thư mục gốc hoặc gặp một tệp .htaccess
. Quá trình này sẽ diễn ra miễn là chỉ thị AllowOverride cho phép sử dụng tệp .htaccess
như đã được minh họa trong bước kích hoạt tệp .htaccess
, dù cho tệp .htaccess
có thực sự tồn tại hay không.
Về mặt bảo mật, tệp .htaccess
dễ tiếp cận hơn nhiều so với cấu hình Apache tiêu chuẩn và các thay đổi được áp dụng ngay lập tức (không cần khởi động lại máy chủ). Điều này cho phép người dùng có quyền thay đổi tệp .htaccess
, giúp họ kiểm soát máy chủ một cách lớn. Bất kỳ chỉ thị nào được đặt trong tệp .htaccess
đều có tác dụng như khi được đặt trực tiếp trong cấu hình Apache. Cũng cần lưu ý rằng Apache thường khuyến cáo không sử dụng tệp .htaccess
nếu người dùng có thể truy cập trực tiếp vào các tệp cấu hình của Apache.
Kết luận
File .htaccess
mang lại sự linh hoạt cao trong việc quản lý và tùy chỉnh trang web, giúp bạn kiểm soát nhiều khía cạnh quan trọng như bảo mật, hiệu suất và SEO. Với .htaccess
, bạn có thể thiết lập chuyển hướng URL, bảo vệ thư mục bằng mật khẩu, ngăn chặn truy cập trái phép và tối ưu hóa tốc độ tải trang. Nếu bạn muốn tìm hiểu thêm về cách bảo mật website hiệu quả, hãy tham khảo thiết lập xác thực bằng mật khẩu với Apache của chúng tôi để khám phá các phương pháp bảo vệ dữ liệu, chống lại các cuộc tấn công phổ biến và đảm bảo trang web của bạn hoạt động an toàn trên môi trường internet.
Khi triển khai Apache và file .htaccess, việc thuê VPS riêng giúp bạn dễ dàng tùy chỉnh cấu hình máy chủ và tối ưu hiệu suất hơn so với hosting chia sẻ. Tham khảo ngay các dịch vụ thuê VPS linh hoạt, hỗ trợ kỹ thuật 24/7 từ chúng tôi để bắt đầu.