#
Nội dung bài viết

File .htaccess là gì? Tạo và cấu hình file .htaccess chuẩn

 28/03/2022 - 14:59 Trịnh Duy Thanh

Để thao tác nhiều hoạt động trên web, các lập trình viên cần sử dụng nhiều công cụ khác nhau, trong đó không thể thiếu được File .htaccess. Nó có khả năng lưu trữ những hành động điều hướng URL trên site. Và nếu bạn đang muốn tìm hiểu rõ hơn về file .htaccess cũng như cách chỉnh sửa và cấu hình nó, thì bài viết này là dành cho bạn. Hãy cùng bắt đầu ngay thôi nào. 

Nội dung bài viết

File .htaccess là gì?

File .htaccess là gì

  • File .htaccess còn có tên gọi khác là HyperText Access.
  • Là một file cấu hình sử dụng cho web server Apache, giúp web admin cấu hình điều hướng và bảo mật website.
  • Giúp điều khiển một cách linh hoạt nhiều tính năng của hệ thống.
  • Giúp thiết lập các tùy chọn, ví dụ như thực hiện, loại bỏ tính năng, quản lý việc truy cập vào trang web,…

File .htaccess có chức năng nhiệm vụ gì?

Chức năng nhiệm vụ của File .htaccess
Chức năng nhiệm vụ của File .htaccess

Nâng cao tính bảo mật cho website

Cho dù bạn không phải là lập trình viên, bạn vẫn hoàn toàn có thể sử dụng file .htaccess để tăng tính bảo mật cho website WordPress.

Xử lý một số yêu cầu đặc biệt mà không cần phải reload hay restart lại web server

  • Không cần phải có full quyền quản lý hosting bạn vẫn có thể tùy chỉnh restrict access, authenticator hay authorization…
  • Nhà cung cấp hosting có thể dễ dàng phân quyền cho người dùng truy cập những folder riêng.
  • Tương thích rất tốt với hầu hết các CMS phổ biến hiện nay (WordPress, Joomla…).

Hướng dẫn tìm file .htaccess trên hosting

File .htaccess nằm ở trong thư mục gốc (thường là public_html hoặc www,…), nó có vị trí và ngang hàng tập tin robots.txt. Để tìm file .htaccess, bạn có thể làm theo cách sau:

  • Với host DirectAdmin, hãy truy cập theo đường dẫn: File → public_html → .htaccess
Tìm file .htaccess trên host sử dụng DirectAdmin
Tìm file .htaccess trên host sử dụng DirectAdmin
  • Với host cPanel, truy cập theo đường dẫn: File manager → Public_html → .htaccess
Tìm file .htaccess trên hosting sử dụng cPanel
Tìm file .htaccess trên hosting sử dụng cPanel

Lưu ý quan trọng: Nếu bạn không nhìn thấy file .htaccess

Trên hầu hết các trình quản lý hosting (cPanel, DirectAdmin…),  các file bắt đầu bằng dấu chấm (.) sẽ mặc định bị ẩn (vì lý do bảo mật).

Trong trường hợp này, để hiển thị file .htaccess, bạn cần vào Cài đặt, tích chọn Hiển thị tệp tin ẩn (dotfiles) và cuối cùng chọn Save để lưu lại tùy chọn.

Hướng dẫn tạo file .htaccess

Bạn có thể tạo file .htaccess theo 2 cách sau đây:

  • Cách 1: Tạo file .htaccess trực tiếp trên hosting (nên làm cách này).
  • Cách 2: Tạo file .htaccess thủ công bằng Notepad (không khuyến khích làm theo cách này).

Cách 1: Tạo file .htaccess trực tiếp trên hosting

Các bước tạo file .htaccess trực tiếp trên hosting như sau:

  • Bước 1: Truy cập vào hosting.
  • Bước 2: Nhấn chuột phải vào khoảng trống trong File Manager, sau đó chọn New file.
  • Bước 3: Đặt tên file là .htaccess sau đó chọn Create.
  • Bước 4: Mở file .htaccess (bằng bất kỳ trình soạn thảo văn bản nào mà bạn yêu thích) và chèn đoạn mã bên dưới (để tạo file .htaccess mặc định):
# BEGIN WordPress
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Cách 2: Tạo file .htaccess từ máy local

  • Bước 1: Mở Notepad trên máy tính của bạn.
  • Bước 2: Gõ đoạn code sau:
# BEGIN WordPress 
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
  • Bước 3: Chọn File, sau đó chọn Save As.
Tạo file .htaccess từ máy local bước 3
Chọn Save để lưu file .htaccess
  • Bước 4: Đặt tên file .htaccess, sau đó chọn All Files và chọn OK.
Tạo file .htaccess từ máy local bước 4
Đặt tên file
  • Bước 5: Up file .htaccess vừa tạo lên hosting. Lưu ý: file .htaccess phải nằm ngay trong thư mục gốc của website (ngang hàng với file robot.txt).

Hướng dẫn mở và chỉnh sửa file .htaccess

File .htaccess sẽ mặc định nằm sẵn ngay trong thư mục gốc. Bạn chỉ cần mở file bằng Notepad, Notepad++ hoặc bất cứ trình soạn thảo văn bản nào bạn thích. Nếu website của bạn chạy mã nguồn WordPress, bạn có thể dễ dàng chỉnh sửa file .htaccess bằng cách sử dụng YoastSEO. Xem chi tiết tại đây: File .htaccess WordPress.

Hướng dẫn chỉnh sửa file .htaccess
Hướng dẫn chỉnh sửa file .htaccess

Một số lưu ý quan trọng trước khi thao tác với file .htaccess

  • Đây là một file rất quan trọng nên cần được bảo mật cẩn thận và tránh để người khác chỉnh sửa.
  • Dòng RewwriteEngine On chỉ có duy nhất 1 dòng nên trước khi thêm code mới, hãy dùng tổ hợp Ctrl + F để kiểm tra xem đã có đoạn mã kia rồi hay chưa, sau đó mới thêm đoạn code mới.
  • Không được thêm hay chỉnh sửa bất kỳ đoạn code nào vào giữa đoạn #BEGIN#END, chỉ được thêm vào đoạn mới vào bên phía dưới chúng.
  • Trước khi chỉnh sửa, bạn nên sao chép toàn bộ nội dung của file ra một ổ khác để phòng trường hợp có thể khôi phục lại nếu như xảy ra lỗi. Nếu không sẽ có thể khiến toàn bộ website không hoạt động.
  • Sau khi thực hiện viết thêm đoạn code nào đó, bạn cần lưu lại.
  • Chỉ nên thêm từng đoạn code, không nên thêm cùng lúc nhiều đoạn code.
  • Sửa code từng đoạn một để biết rõ lỗi xảy ra ở đâu và khắc phục hiệu quả.

Hướng dẫn cấu hình file .htaccess cơ bản bằng cách sử dụng lệnh RewriteRule

Hướng dẫn cấu hình file .htaccess cơ bản bằng cách sử dụng lệnh RewriteRule

Sử dụng file .htaccess để bỏ hoặc thêm www trong domain

Xem bài viết chi tiết: Sử dụng file .htaccess redirect từ www sang non-www và ngược lại.

Sử dụng file .htaccess để redirect đến trang thông báo lỗi riêng với file .htaccess

Các lỗi phổ biến thường gặp trên website như 401, 403, 404, 500,… Nếu như không xử lý redirect, trình duyệt sẽ trả về một thông báo lỗi, gây ra cảm giác khó chịu cho người dùng, ảnh hưởng xấu tới trải nghiệm người dùng trên website. Để giải quyết các lỗi nói trên, bạn có thể dùng file .htaccess để cấu hình redirect đến trang thông báo lỗi. Cú pháp lệnh như sau:

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

Sử dụng file .htaccess để cài đặt 301 Redirect có lợi cho SEO

301 Redirect là giải pháp tối ưu nhất để chuyển đổi tên miền và chuyển file mà không làm mất lượng truy cập hay kết quả tìm kiếm trên Google. Lệnh thực hiện như sau:

// redirect 1 page
Redirect 301 /old/old.htm http://domain.com/new.htm

// redirect toàn bộ domain
RewriteEngine On
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Chặn hotlink bằng cách sử dụng file .htaccess

Hotlink là đường liên kết trực tiếp đến website khác và lấy file trên đó về sử dụng, bao gồm các file hình ảnh, video, tài liệu,… Đây là hình thức được sử dụng chủ yếu cho những web tạm thời, thường là các website không uy tín, hay đi copy bài của website khác…

Hotlink làm tiêu tốn đáng kể tài nguyên băng thông của bạn vì các nó sẽ lấy dữ liệu trực tiếp dữ liệu từ host của bạn. Do đó, bạn có thể ngăn chặn việc này bằng cách sử dụng file .htaccess như sau:

Options +FollowSymlinks
#No hotlink
RewriteEngine On
RewriteCond %{HTTP_REFERER}!^$
RewriteCond %{HTTP_REFERER}!^http://(www.)?domain.com/[nc]
RewriteRule .*.(gif|jpg|png)$ http://domain.com/images/nohotlink.gif[nc]

Bỏ đuôi mở rộng “.php” của website bằng cách sử dụng file .htaccess

Nếu muốn địa chỉ URL website được chuyên nghiệp và bảo mật hơn, bạn có thể bỏ phần đuôi mở rộng .php của web bằng cách sử dụng mã lệnh sau:

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

Sử dụng file .htaccess để chuyển .php sang .html trong url

Nếu bạn muốn đuôi .html thay vì .php, bạn cũng có thể sử dụng file .htaccess với công thức sau:

RewriteRule ^(.*).html$ $1.php [R=301,L]

Sử dụng file .htaccess để thêm dấu “/” vào cuối URL:

Khi tối ưu URL, mã nguồn WordPress sẽ có dấu gạch chéo phía sau để tránh bị đánh giá là trùng lặp nội dung, từ đó làm SEO tốt hơn, cách thực hiện như sau:

#Thêm / vào cuối URL
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

Sử dụng file .htaccess để cấm IP truy cập vào website

Có một số trường hợp người truy cập có động thái spam, bình luận không đúng quy định hay những cá nhân cá biệt có những hành động không chuẩn mực thì bạn có thể chặn IP của họ bằng cách sử dụng file .htaccess như sau:

allow from all
deny from 192.168.1.123
deny from 192.168

Sử dụng file .htaccess để bảo vệ file trong host

Để tăng tính bảo mật cho website, bảo vệ các file trong host bằng cách không cho phép truy cập trực tiếp vào file (Lưu ý: khi đó trình duyệt sẽ trả về lỗi 403):

# Bảo vệ file dùng .htaccess
<files .htaccess="">
order allow,deny
deny from all
</files>

Sử dụng file .htaccess để đặt password cho thư mục và file

Bạn có thể đặt mật khẩu cho file và thư mục để tránh việc truy cập trái phép của người khác bằng cách dùng file .htaccess và gõ mã lệnh như sau:

#Đặt Pass cho thư mục
resides
AuthType basic
AuthName "Thư mục này đã được bảo vệ"
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user

# Đặt Pass cho file
<files secure.php="">
AuthType Basic
AuthName "Prompt"
AuthUserFile /home/path/.htpasswd
Require valid-user
</files>

Sử dụng file .htaccess để chuyển dấu “_” thành “-” trong URL

Mặc dù cả hai dấu “_” và “-” đều có ý nghĩa như nhau trong việc phân cách các ký tự trong url, nhưng về mặt cảm quan, người dùng sẽ có thiên hướng thích dấu “-” hơn vì tạo cảm giác quen thuộc hơn. Đồng thời dấu “-” dường như lợi hơn cho việc SEO website. Để cấu hình cho url website tự động chuyển tất cả dấu “_” thành dấu “-”, bạn thêm đoạn mã sau vào file .htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule !.(html|php)$ - [S=4]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes]
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://domain.com/$1 [R=301,L]

Sử dụng file .htaccess để đặt lại trang mặc định

Trang mặc định của website được hosting tự động nhận, thường sẽ là index.php, index.html,… Nếu bạn muốn thay đổi trang mặc định, bạn có thể chèn đoạn mã sau vào file .htaccess:

DirectoryIndex info.html

Sử dụng file .htaccess để bật tính năng nén file Gzip

Chức năng nén file rất quan trọng trong việc backup dữ liệu, giúp tải dữ liệu nhanh và tránh việc bị thất lạc hoặc mất mát dữ liệu. Bạn có thể bật tính năng này bằng cách chèn đoạn mã bên dưới vào trong file .htaccess:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Sử dụng file .htaccess để bảo mật file wp-config.php của WordPress

File wp-config.php rất quan trọng vì nó chứa các dữ liệu về username, mật khẩu,… Để đảm bảo việc bảo mật file wp-config.php tốt nhất và cấm truy cập từ bên ngoài, bạn có thể dụng chèn đoạn mã bên dưới vào trong file .htaccess:

# Bảo mật file wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Sử dụng file .htaccess để giới hạn file Upload:

Giới hạn file upload sẽ giúp tiết kiệm được đáng kể tài nguyên, giúp website hoạt động được nhẹ nhàng, nhanh chóng và mượt mà hơn. Để thực hiện, bạn có thể thêm đoạn code sau vào file .htaccess:

# Giới hạn đến 10mb
LimitRequestBody 10240000

Sử dụng file .htaccess để xóa category trong đường dẫn website WordPress

Đối với việc làm SEO, việc xóa category trong đường dẫn được cho là sẽ tối ưu hơn. Có nhiều cách để làm việc này, trong đó, một cách đơn giản là bạn có thể thêm đoạn mã bên dưới đây vào trong file file .htaccess:

RewriteRule ^category/(.+)$ http://yoursite.com/$1 [R=301,L]

Sử dụng .htaccess để redirect tên miền cũ qua tên miền mới

Xem bài viết chi tiết: Hướng dẫn cách redirect domain an toàn cho SEO cực kỳ đơn giản.

Nếu muốn thay đổi tên miền của website, việc ưu tiên hàng đầu là bạn cần redirect tên miền cũ sang tên miền mới. Việc điều hướng đúng sẽ giúp cho website của bạn không bị mất traffic và không bị mất thứ hạng trên các công cụ tìm kiếm.

Nếu như bạn chỉ cần thay đổi tên miền mà không cần thay đổi về cấu trúc trang web, bạn hãy thêm đoạn code bên dưới vào file .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www.olddomain.com$
  RewriteRule (.*)$ http://www.newdomain.com/$1 [R=301,L]
</IfModule>

Sử dụng .htaccess để redirect từ http qua https đối với Linux & cPanel

Việc điều hướng từ http qua https sẽ giúp ích rất nhiều trong việc bảo vệ web của bạn khỏi tin tặc. Để thực hiện redirect bằng việc sử dụng .htaccess, bạn có thể tham khảo chi tiết TẠI ĐÂY.

Tổng kết về file .htaccess

Có thể nói file .htaccess đóng vai trò rất quan trọng trong việc hoạt động của website. Hy vọng qua bài viết này, bạn đã hiểu hơn về file .htaccess cũng như những cách cấu hình nó một cách cơ bản nhất. Nếu bạn còn bất kỳ thắc mắc nào liên quan đến file .htaccess, hãy để lại comment ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất. Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kinh nghiệm quản trị website, domain, hosting, vps, server, email,… Chúc bạn thành công.


Cùng tên miền .CLUB bắt đầu một câu lạc bộ và kết nối với những người có cùng đam mê với bạn.

Sở hữu tên miền .CLUB tại BKHOST để sẻ chia đam mê ngay hôm nay! 

BKHOST đang có chương trình ưu đãi cực hấp dẫn dành cho khách hàng đăng ký mới dịch vụ tên miền.


Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger