1. htaccess là gì ?

Khi vấp phải một vấn đề mới, hoặc khó hiểu, mình thường lên mạng tìm kiếm thông tin với các câu hỏi đại loại như “nó là gì?” và “tại sao phải dùng nó”,…. Với htaccess cũng vậy, khi mới tìm hiểu về nó, mình cũng đọc qua rất nhiều tuts hướng dẫn, nhưng đa phần mình thấy họ đều đưa ra cách viết htaccess mà không nói rõ lý do bản chất nó là gì và tại sao phải dùng nó, ừ, thì tôi coi họ viết thì mình cũng hiểu sơ lược, cũng biết viết theo,cũng biết nôm na nó có các chức năng như là rewrite url, bảo mật,…Nhưng hiếm thấy một bài viết nào có thể trả lời tường tận, triệt để cho mình câu hỏi mà mình luôn phân vân trong đầu “.htaccess là gì?” và “tại sao phải dùng .htaccess?”. Khi đó mình nhớ đến một câu nói

Đưa cho một người con cá, họ sẽ ăn hết trong ngày hôm nay. Nhưng dạy họ cách câu cá, họ sẽ ăn cá cả đời

Thật vậy, trong bài viết này, mình sẽ viết những gì cô đọng nhất, để đem lại cho các bạn cái nhìn đơn giản, dễ hiểu nhất về .htacess. Đầu tiên, cùng nhau phân tích .htaccess là gì ? Trích một định nghĩa từ wiki

A .htaccess (hypertext access) file is a directory-level configuration file supported by several web servers, that allows for decentralized management of web server configuration. They are placed inside the web tree, and are able to override a subset of the server’s global configuration for the directory that they are in, and all sub-directories. (wikipedia)

Ở đây dịch nôm na có nghĩa đó là .htaccess (tập tin siêu văn bản) là một tập tin cấu hình ở cấp thư mục được hỗ trợ bởi một vài máy chủ web, cho phép phân quyền cấu hình máy chủ (web server). Nó được đặt bên trong cây thư mục của trang web và có khả năng ghi đè lên cấu hình lên thư mục hiện hành và toàn bộ các thư mục con nằm bên trong nó.

kungufphp-what-is-htaccess

.htaccess cung cấp một loạt các chỉ thị, tác động trực tiếp lên cấu hình của lõi server (Apache) mà không cần phải truy câp vào bên trong hệ thống chỉnh sửa các tập tin config của server ( httpd.conf ), có ảnh hưởng vô cùng quan trọng đến toàn bộ hệ thống website đang chạy. Đó là lý do tại sao không quá khi nói rằng “Làm chủ htaccess, làm chủ cuộc chơi

Chính nhờ tầm quan trọng và tính khả dụng của .htaccess mà các công ty cho thuê, bán hosting chia sẽ môi trường máy chủ. Bạn nào đã từng làm thuê hosting sẽ biết rằng họ sẽ không cho phép khách hàng truy cập trực tiếp vào các file cấu hình quan trọng bên trong hệ thống có sức ảnh hưởng đến toàn bộ máy chủ (server). Mà thay vào đó, họ sẽ cho khách hàng tác động lên tập tin .htaccess và cấu hình riêng cho môi trường làm việc trong folder hiện hành chưa website riêng của họ.

Vậy thì có phải là những gì những tập tin cấu hình hệ thống cốt lõi như httpd.conf làm được thì .htaccess đều làm được ? Câu trả lời là không? Những cấu hình, phân quyền trong .htaccess sẽ bị giới hạn bởi chính tập tin httpd.conf. Điều này sẽ giúp cho nhà quản trị hệ thống, các công ty hosting ngăn chặn được những người cố tính cấu hình tệp tin .htaccess để phá hoại hệ thống.

2. Enable .htaccess

Để có thể sử dụng được tập tin .htaccess và cấu hình phân quyền, rewrite url,… theo ý muốn thì trước tiên bạn phải bật chức năng ghi đề của tập tin .htaccess trong tập tin cấu hình chính là httpd.conf.

Tìm trong tập tin httpd.conf dòng như dưới và xóa ký tự comment code “#” để bật .htaccess

 3. Giới hạn quyền ghi đè của .htaccess

Dưới đây là một ví dụ đơn giản cho chúng ta thấy rằng file httpd.conf tác động lên khả năng ghi đè của tập tin .htaccess như đã nói ở trên.

4 .htaccess có thể làm được những gì ?

a ) Khả năng viết lại được dẫn (rewrite url)

Có thể nói, nhắc đến .htaccess là chúng ta nhắc đến cụm từ quen thuộc “mod_rewrite”, nó cho phép chúng ta viết lại đường dẫn trang web sao cho thân thiện, dùng cho nhiều mục đích mà trong đó mục đích chính tôi thường thấy đó là nâng cao khả năng SEO web.

Sau đây mình xin giới thiệu đến các bạn một số cách viết lại đường dẫn thường dùng trong .htaccess

a.1) .htaccess file sẽ chuyển hướng đường dẫn http://kungfuphp.com/contact.php thành http://kungfuphp.com/contact-hieu.html

 a.2) Chuyển toàn bộ đường dân có đuôi .php sang đuôi .abc

a.3) Chuyển toàn bộ các bài đăng trong http://kungfuphp.com/post?id=1 thành http://kungfuphp.com/post-1.html

a.4) Chuyến hướng website bị lỗi 404 sang một trang thông báo lỗi được chính bạn custom lại

a.5) Chuyển hướng tên miền http://kungfuphp.com thành http://www.kungfuphp.com

a.6) Bảo mật với .htaccess và .htpasswd

Trước tiên bạn phải tạo một file, đặt tên là .htpasswd, sau đó vào trang http://www.htpasswdgenerator.net/ , làm theo hướng hướng dẫn để generate ra đoạn mã, sau đó copy đoạn mã này vào file .htpasswd. Đặt file này trong đường dẫn web của bạn (lưu ý, bạn có thể đặt ở bất cứ nơi đâu trong folder chưa website của bạn)

Tiếp tục, trong file .htaccess thêm dòng này

Lưu lại file .htaccess và đặt nó vào thư mục bạn muốn bảo vệ, bắt người dùng phải nhập username và password giống như trong file .htpasswd chúng ta đã định sẵn mới có thể đăng nhập được vào hệ thống website của chúng ta

Như các bạn thấy đó, công dụng của .htaccess thật tuyệt vời đúng không nào ? Mình sẽ tiếp tục thêm các bài viết về .htaccess và chia sẽ cho các bạn những thứ hay ho khác nữa. Chúc các bạn một ngày làm việc và học tập thật hiệu quả. Thân mến!

 

Nguon : kungfuphp.com
Gửi bình luận bằng Facebook

Bài viết liên quan: