File .htaccess là loại tệp gì? Đối với các lập trình viên Website thì loại tệp này đã không còn quá xa lạ. Đây là File sẽ giúp bạn lưu trữ những hành động điều hướng URL trên Site. Tuy nhiên, liệu bạn đã biết về loại File này hay chưa? Cách dùng của File như thế nào? Cùng Ngọc Thắng trả lời câu hỏi File .htaccess là gì và các vấn đề khác liên quan đến loại tệp này qua bài viết dưới đây nhé!
File .htaccess là gì?
MỤC LỤC
Tệp .htaccess hay còn được gọi là Hypertext Access là một loại tệp văn bản thuần túy được sử dụng để định dạng cấu hình cho Website của bạn, như chuyển hướng, quản lý IP, … Mỗi tệp sẽ nằm trong một thư mục trên máy chủ và chứa các cấu hình cho thư mục cụ thể đó trên trang Web của bạn.
Đặc biệt, File có tác dụng trên thư mục hiện hành và tất cả thư mục con, tệp được dùng để thiết lập các tùy chọn như thực thi hay loại bỏ tính năng, quản lí các truy cập Website.
Ví dụ: Các chỉnh sửa đối với tệp .htaccess trong thư mục “Image” trên trang Web của bạn sẽ chỉ ảnh hưởng đến các trang nằm trong thư mục đó.
Nếu bạn đặt tệp trong thư mục gốc của trang Web, cấu hình của tệp sẽ được áp dụng cho tất cả các URL trên Website của bạn.
File .htaccess dùng để làm gì?
File .htaccess có tính ứng dụng cao và được sử dụng trong nhiều trường hợp. Các trường hợp không thể thiếu .htaccess bao gồm:
- Tải lại các trang lỗi có tùy chỉnh. Ví dụ: trang 404.
- Thêm chuyển hướng cho 1 số URL nhất định.
- Bảo vệ 1 số thư mục nhất định bằng mật khẩu trên máy chủ.
- Yêu cầu website của bạn dùng https thay cho http.
- Chặn các liên kết nóng.
Dùng tệp .htaccess là cách tối ưu nhất giúp bạn quản lý server. Tuy nhiên, khi sử dụng .htaccess sẽ hơi phức tạp. Do đó các bạn cần nắm rõ kiến thức, thao tác thay đổi trên server trước khi chuyển sang dùng file .htaccess để chỉnh sửa.
Lưu ý: Trước khi thực hiện chỉnh sửa hoặc làm theo hướng dẫn dưới đây. Các bạn cũng nên tạo 1 file backup cho toàn bộ website và file .htaccess.
Vị trí của file .htaccess nằm ở đâu?
File .htaccess nằm ngang hàng với thư mục gốc (thường là public_html, www,…) và file robots.txt. Bạn có thể tìm file .htaccess bằng cách sau:
– Đối với host DirectAdmin, chọn File > Chọn public_html > Chọn .htaccess.
– Đối với host Cpanel, chọn File manager > Chọn public_html > Chọn .htaccess.
Tầm quan trọng của file .htaccess là gì?
File .htaccess khi đưa vào sử dụng có những tác dụng, những lợi ích riêng. Và tiêu biểu và cụ thể trong đó phải kể tới là:
– Được biết tới là một trong số những CMS lớn nhất, được sử dụng rộng rãi nhất hiện nay thì WordPress có sức hút lớn đối với các hacker. Chính bởi vậy, muốn giữ cho site được an toàn, đảm bảo duy trì được mức độ an toàn lý tưởng, ở mức cao nhất luôn là nhiệm vụ quan trọng hàng đầu của Admin.
Chúng ta không cần phải là coder, hay một developer cũng có thể dận dụng được sức mạnh của file .htaccess giúp tăng thêm được tính bảo mật cho website của mình. Đây là công dụng, là lợi ích lớn và quan trọng nhất mà file .htaccess mang tới.
– Ngoài ra, việc có thể xử lý logic đối với request bất kì mà hoàn toàn không yêu cầu cần thực hiện reload hay tiến hành restart lại web sever cũng là một lợi ích không thể bỏ qua.
– Với file .htaccess được khai thác sẽ cho phép những người dùng hoàn toàn không phải là administrator song cũng có thể thực hiện việc tinh chỉnh song không phải tác động tới toàn bộ config của APACHE.
– Việc sử dụng file .htaccess còn được đánh giá cao bởi khả năng dễ dàng phân quyền access cho người dùng và đảm bảo chỉ access trong folder của riêng mình mà thôi.
– Ứng dụng file .htaccess còn có khả năng thích hợp cho những hệ thống quản lý nội dung.
Sử dụng nhiều file .htaccess có được không?
Bạn có thể áp dụng các cài đặt khác nhau cho các thư mục khác nhau trên server của mình bằng cách sử dụng nhiều file .htaccess. Về mặt lý thuyết, bạn có thể tạo file .htaccess trong bất kỳ thư mục nào trên server của mình bằng cách tạo và tải lên file văn bản thuần túy.
Dưới đây là một số điều cần ghi nhớ:
- Nên giảm bớt số lượng file .htaccess trên server của mình. Bởi vì quá nhiều cấu hình có thể làm chậm server của bạn.
- Khi server của bạn nhìn thấy file .htaccess trong một thư mục, nó cũng sẽ tìm kiếm file .htaccess trong tất cả các thư mục mẹ. Việc này làm tăng việc sử dụng tài nguyên server.
- Các file .htaccess có cấp cao hơn trong đường dẫn file luôn được ưu tiên.
Cách tạo file .htaccess toàn tập
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
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):
{{EJS0}}
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:
{{EJS1}}
- Bước 3: Chọn File, sau đó chọn Save As.
- Bước 4: Đặt tên file .htaccess, sau đó chọn All Files và chọn OK.
- 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.
Các thao tác trong file .htaccess
file .htaccess là gì? Phần tiếp theo mà Ngọc Thắng muốn chia sẻ trong bài viết này đó chính là về cấu hình của file .htaccess.
1. Thêm hoặc bỏ www trong domain
Các bạn có thể thấy có những website xuất hiện www hoặc không có trên đường link hiển thị. Điều này hoàn toàn có thể được chỉnh sửa trong file .htaccess. Cách thêm hoặc bớt www rất đơn giản. Chỉ cần bổ sung đoạn code như sau:
Thêm www vào trong url:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
Bỏ www trong url:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
2. Tùy chỉnh thông báo lỗi trên .htaccess
Các bạn có thể tùy chỉnh thông báo lỗi ngay trên file .htaccess thông qua ErrorDocument. Một số mã lỗi quen thuộc khi các bạn thực hiện cấu hình .htaccess.
- 400: Lỗi yêu cầu (Bad request)
- 401: Cần mật khẩu để truy nhập (Authorization Required)
- 403: Không được vào (Forbidden).
- 404: Lỗi trang, không tìm thấy,… (Wrong page)
- 500: Lỗi server (Internal Server Error).
3. Cài đặt 301 Redirect có lợi cho SEO
301 Redirect là vấn đề mà mình đã đề cập ở bài trước tối ưu seo với 301 Redirect, đây là phương pháp được xem là tối ưu nhất cho việc chuyển tên miền hay chuyển file nào đó mà không mất về lượng truy cập cũng như về kết quả tìm kiếm trên google, thao tác 301 Redirect trên file .htaccess như sau:
// 1 Trang
Redirect 301 /old/old.htm http://domain.com/new.htm
// chuyển domain
RewriteEngine On
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L
4. Chặn hotlink với file .htaccess
Hotlink chính là link trực tiếp đến trang web của người khác lấy các file về sử dụng trên website, có thể là file hình ảnh, video, tài liệu … Hotlink là một giải pháp cho những blog tạm, không chắc chắn và những ai hay đi copy bài người viết của các trang web khác.
Hotlink sẽ làm tốn một lượng băng thông rất lớn vì các site khác lấy file trực tiếp từ host của bạn. Sau đây là cách mà bạn ngăn chặn việc đó bằng file .htaccess
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]
5. Bỏ đuôi mở rộng của file web “.php”
Khi duyệt website muốn địa chỉ URL phải đẹp, chuyên nghiệp, và đôi lúc muốn che giấu công nghệ web đang sử dụng cũng có thể áp dụng phương pháp này. bạn vào file .htaccess gõ mã lệnh như sau:
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
6. Chuyển .php sang .html trong url
Công việc này cũng khá đơn giản với file cấu hình .htaccess này, có một số lý do khiến bạn làm công việc này, đó là bạn muốn bảo mật, đuôi .html đẹp hơn .php, rồi để tối ưu SEO … bạn làm như sau:
RewriteRule ^(.*).html$ $1.php [R=301,L]
7. Thêm dấu “/” vào cuối URL
Mã nguồn WordPress khi bạn tối ưu URL thì bạn sẽ thấy được có dấu “/” ở sau mỗi URL, điều đó là sẽ tốt cho SEO. Tránh bị các công cụ tìm kiếm cho là trùng lắp nội dung.
#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]
8. Cấm IP truy cập vào site
Có đôi lúc bạn muốn cấm hẳn một IP nào đó không được truy cập vào site của bạn vì lý do nào đó như: spam quá mức, thường xuyên viết comment không đúng qui định, thành phần cá biệt … trong trường hợp này can thiệp vào tập tin .htaccess bạn cũng có thể làm được việc này.
allow from all
deny from 192.168.1.123
deny from 192.168
9. Bảo vệ file trong host dùng .htaccess
Bạn muốn tăng sự bảo mật cho trang web của bạn bằng cách bảo vệ các file, không cho phép truy cập trực tiếp vào các file trong host bạn có thể sử dụng cách sau, và cách này sẽ trả về lỗi 403 cho trình duyệt.
# Bảo vệ file dùng .htaccess
<files .htaccess=””>
order allow,deny
deny from all
</files>
10. Đặt password cho thư mục và file
Trong một số trường hợp bạn muốn đặt mật khẩu cho file và thư mục, tránh sự truy cập trái phép của người khác bạn có thể 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>
11. Chuyển dấu “_” thành “-” trong URL
Dấu _ hay dấu – thì đều là dấu phân cách để hiểu được và phân biệt giữa chữ này với chữ kia tuy nhiên người xem lại thích dấu “-“hơn vì nó dễ nhìn và có cảm giác phân cách hơn dấu kia nhìn giống như một chuổi dài liên tục, mặt khác đâu “-” có thể sẽ có lợi cho SEO. bạn chuyển đổi bằng cách sau:
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]
12. Set lại trang mặc định
Hostting nhận trang mặc định chạy lên khi không rõ địa chỉ URL của trang đích thực là index.php, index.html … bây giờ bạn muốn chạy mặc định là trang khác ví dụ như trang info.html bạn có thể cài đặt trong file .htaccess như sau:
DirectoryIndex info.html
13. Bật tính năng nén file Gzip
Bạn có thể bật chức năng này lên, và rất quan trọng trong việc backup dữ liệu, mục đích để tải dữ liệu được nhanh chóng và tranh mất mát. bạn vào trong file .htaccess và làm như sau:
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
14. Bỏ từ “category” ở URL
Hôm trước ở bài trước mình có chia sẻ blugin xóa từ category ở URL của website WordPress. Hôm nay chúng ta có thêm một cách nữa, là không phải dùng plugin mà có thể tương tác trực tiếp lên file .htaccess.
RewriteRule ^category/(.+)$ http://domain.com/$1 [R=301,L]
15. Không cho truy cập file wp-config.php của WordPress:
Một ứng dụng nhỏ mà rất quan trọng trong việc bảo mật file đã đề cập ở trên. Trong WordPress bạn cũng biết là file wp-config.php rất quan trọng chứa thông số về database username, pass… mình sẽ cấp không cho truy cập trang bằng cách như sau:
# Bảo mật file wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>
16. Giới hạn file Upload:
Công việc này cũng quan trọng trong việc tiết kiệm tài nguyên website của bạn, việc giới hạn này sẽ làm cho web nhẹ nhàng hơn, load nhanh hơn … thêm vào trong file. htaccess đoạn code sau:
# Giới hạn đến 10mb
LimitRequestBody 10240000
17. Dùng .htaccess redirect tên miền cũ qua tên miền mới
Khi bạn quyết định chuyển 1 website qua 1 tên miền mới thì 1 trong những điềuquan trọng là phải điều hướng (redirect) tên miền cũ qua tên miền mới.
Nếu điều hướng đúng thì các trang ở tên miền cũ cũng sẽ được điều hướng qua đúng trang tương ứng trên tên miền mới. Nếu redirect sai thì đồng nghĩa bạn sẽ mất rất nhiều lượng truy cập cũng như rớt hàng trên công cụ tìm kiếm.
Bạn nên dùng cách điều hướng sau trong trường hợp bạn không thay đổi cấu trúc web (các trang và links) mà chi đơn giản chuyển đổi tên miền. Với cách này các bạn chỉ cần đơn gian thêm dòng code này vào file .htaccess nằm trong root của domain cũ.
<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>
18. Redirect http qua https bằng .htaccess Đối với Linux & cPanel
Các bạn thêm đoạn code bên dưới vào file htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Lưu ý không được có 2 dòng “RewriteEngine On” trong 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 và #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ả.
Lời kết
Trên đây là một trong những kỹ thuật quan trọng cần biết đối với quản trị website. Ứng dụng của tệp tin đa dạng cho nhiều mục đích khác nhau. Qua đó giúp việc vận hành web và trải nghiệm người dùng được tối ưu nhất. SEO WEB Ngọc Thắng tin rằng bạn đã hiểu về bản chất của file .htaccess là gì và ứng dụng thành công.
Hiện nay Ngọc Thắng đang cung cấp các dịch vụ như thiết kế website, dịch vụ SEO tổng thể, SEO từ khóa chuyên nghiệp và hiệu quả đã được rất nhiều khách hàng sử dụng giúp mang lại sức mạnh và thứ hạng tốt cho website của bạn.
Nếu còn bất kỳ thắc mắc gì về các thông tin mà chúng tôi chia sẻ bên trên hay bạn đang tìm kiếm một dịch vụ webiste uy tín thì đừng ngần ngại hãy liên hệ ngay với chúng tôi để được tư vấn thêm nhé!
Với nhiều năm kinh nghiệm cũng như được khách hàng đánh giá cao, Ngọc Thắng tự tin là đơn vị cung cấp các dịch vụ website hàng đầu hiện nay.
Đại chỉ: Số 07 Ngách 2, Ngõ 121 Trần Phú, P. Văn Quán, Hà Đông, Hà Nội, Việt Nam
Tổng đài: 1900 89 21
Hotline: 098 148 1368
MST: 0107994795
Email: lienhe@ngocthang.vn
Website: https://ngocthang.net/
Tôi là Trần Đức Thắng, hiện đang là CEO & Co-Founder của Công Ty Ngọc Thắng. Tôi phát triển với nền tảng thiết kế website, SEO và Inbound Marketing. Hiện nay Ngọc Thắng cung cấp dịch vụ thiết kế website, SEO, quảng cáo Google Ads… Với kinh nghiệm triển khai nhiều dự án những năm qua, đội ngũ của Ngọc Thắng không ngừng nỗ lực mang đến những dịch vụ tốt với chi phí thấp nhất cho quý khách hàng.!