File .htaccess là gì?
Tập tin .htaccess ( hypertext access ) đây là một file có ở thư mục gốc của các hostting chạy apache quản lý, cấp quyền. File .htaccess có thể điều khiển, cấu hình được nhiều thứ với đa dạng các thông số, nó có thể thay đổi được các giá trị được set mặc định của apache.
Nếu được khai thác tốt thì .htaccess sẽ giúp được bạn rất nhiều việc mà tốn rất ít công sức đơn giản chi vài dòng lệnh là được. Cách thức mà bạn sử file .htaccess cũng thật đơn giản cứ mở bằng một trình soạn thảo nào đó chỉnh sửa xong save as lại với thành file .htaccess là xong.
Những lưu ý khi sử dụng file .htaccess:
- Phải đảm bảo file .htaccess được bảo mật một cách nhất định, để tránh nhưng kẻ xấu lợi dụng nó.
- Nếu như người dùng không nắm rõ hoặc có sơ suất trong quá trình cấu hình đều có thể khiến website của bạn có thể không hoạt động hoặc không như ý muốn của người dùng như trước.
- Cần lưu lại một file .htaccess trước khi tiến hành chỉnh sửa. Nếu có trục trặc xảy ra vẫn có thể khôi phục lại.
Những lỗi dễ phát sinh khi dùng file .htaccess không đúng
Trong đó mã số lỗi là mã số của các lỗi phát sinh, sau đây là những lỗi hay gặp:
- 401 – Authorization Required (cần password để truy nhập)
- 404 – Wrong page (lỗi trang, không tìm thấy…)
- 400 – Bad request (Lỗi do yêu cầu)
- 500 – Internal Server Error (lỗi server)
- 403 – Forbidden (không được vào)
Bên dưới là những công dụng của file htaccess mà mình hay sử dụng nhất trong quá trình hộ trợ web cho khách hàng:
1. 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>
2. Redirect từng URL riêng với .htaccess
Còn trong trường hợp bạn có chính sửa cấu trúc web (link của các trang) bạn vẫn có thể dùng các dòng code trên nhưng cần tạo các điều hước khác trong file .htaccess trên tiên miền mới để giải quyết từng trang cụ thể. Để tạo 1 redirect cho 1 trang cũ tới 1 trang mới thì bạn dùng cấu trúc sau
Redirect 301 /old/old.htm http://www.domain.com/new.htm
3. 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 OnRewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Lưu ý không được có 2 dòng “RewriteEngine On” trong file htaccess
4. Bảo vệ ăn cắp tài nguyên và băng thông bằng file .htaccess
RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www.)?yourwebsite.com/.*$ [NC]RewriteRule .(gif|jpg)$ – [F]
5. Redirect non-www qua www bằng htaccess
Để chuyển hướng (redirect) non-www (không có www) qua www (có www) thì các bạn có thể điều chỉnh trong file htaccess
RewriteCond %{HTTP_HOST} ^example.com$ [NC]RewriteRule (.*) http://www.example.com/$1 [R=301,L]
6. Redirect www qua non-www bằng htaccess
Để chuyển hướng (redirect) www (có www) non-www (không có www) thì các bạn có thể điều chỉnh trong file htaccess như sau:
RewriteEngine onRewriteCond %{HTTP_HOST} !^www.yourdomain.com$RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301]
7. Chặn 1 IP cụ thể truy cập, dùng đoạn mã sau trong file htaccess
deny from 123.456.789.100;deny from 123.456.789.101;
Bên trên là mã để chặn IP 123.456.789.100, 123.456.789.101 bạn có thể thêm bao nhiêu dòng để chặn bao nhiêu IP tùy ý:
8. Xóa phần đuôi mở rộng của các tập tin, dùng đoạn mã sau
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^\.]+)$ $1.php [NC,L]
Đoạn mã trên sẽ xóa tất cả đuôi .php của các file php khi hiện trên thanh address.
8. Đổi phần đuôi mở rộng của các tập tin, dùng đoạn mã sau
RewriteEngine onRewriteRule (.*).dll$ $1.html
Trong đó html là phần mở rộng thực sự của những tập tin, dll là phần mở rộng do chúng ta tự chọn.
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.
order allow,deny deny from all
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 của mình, 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 AuthType Basic AuthName "Prompt" AuthUserFile /home/path/.htpasswd Require valid-user
11. 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-javascriptBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4.0[678] no-gzipBrowserMatch bMSIE !no-gzip !gzip-only-text/html
12. Bật tính năng nén file Gzip
Khi thực hiện dịch vụ SEO trên các web wordpress mình rất ghét /category hoặc /danh-muc xuất hiện trên url category nên mình thường xóa đi. Có nhiều cách để xóa trong đó htaccess là 1 trong những cách hiệu quả, bạn có thể chèn đoạn mã sau:
RewriteRule ^category/(.+)$ http://yoursite.com/$1 [R=301,L]
Như đã nói ở đầu, nếu bạn biết cách vận dụng tập tin .htaccess vào trong việc quản lý, tùy chỉnh WEB và host thì rất tuyệt vời, tiết kiệm công sức và hiệu quả thì mang lại rất cao. Chúc mọi người thành công khi làm web và làm SEO!