Một trong những chức năng độc đáo nhất của file .htaccess là khả năng viết lại đường dẫn URL của trang Web.
Trên trang chủ của Apache, mô đun mod_rewrite được nhắc đến như một chìa khóa vạn năng cho phép tùy biến một cách dễ dàng.
Trước khi đi vào phần chính, cần ghi nhớ rằng một số nhà cung cấp dich vụ lưu trữ Web không hỗ trợ chức năng này. Trong trường hợp đó, bạn không có cách nào sử dụng chức năng này trừ phi bạn đành đập vỡ con lợn đất đâu đó trong nhà và chuyển đến một máy chủ hỗ trợ mod_rewrite.
Nếu bạn tự quản lý một máy chủ riêng (server) thì nên chắc rằng modul mod_rewrite đã được kích hoạt. Trong trường hợp ngược lại thì kiểm tra file cấu hình máy chủ Apache (httpd.conf). Chắc chắn rằng hai dòng sau được kích hoạt và không bị đặt trong dấu bình :
"
LoadModule rewrite_module modules/mod_rewrite.soAddModule mod_rewrite.c
Sau khi thay đổi thì nhớ phải khởi động lại máy chủ Apache để cấu hình thay đổi được cập nhật.
Kiểm tra cấu hình
Trước khi tìm hiểu kỹ hơn, bạn phải kiểm tra xem cấu hình mod_rewrite đã được kích hoạt trên máy chủ của nhà cung cấp dịch vụ chưa. Vì tất cả thao tác đều có thể ảnh hưởng tới hoạt động của site, bạn nên thử, thao tác trong thời gian ít người truy cập và tránh khoảng thời gian ‘full crawl’ mà Google đánh chỉ số (index) Web của bạn.
1. Tạo một file html đơn giản, đặt tên eureka.html chẳng hạn
2. Thay đổi file .htaccess bằng cách thêm 3 dòng sau vào. Thật cẩn thận khi sử dụng cú pháp. Tốt hơn hết là nên cắt dán :
"
Options +FollowSymlinksRewriteEngine on
RewriteRule ^thunghiem.html$ eureka.html [L]
3. Tải file .htaccess và eureka.html lên thư mục gốc site của bạn (bằng FTP chẳng hạn) hoặc thận trọng hơn là thư mục test tạo ra để thử nghiệm.
4. Mở trình duyệt, truy cập tới địa chỉ URL ảo : http://www.site_cua_ban.com/thunghiem.html
Có hai trường hợp có thể xấy ra :
* File eureka.html hiển thị, mod_rewrite đã được kích hoạt. Chúc mừng bạn, hãy chuyển qua bước sau.
* Bận nhận được một lỗi 404 hoặc có thể lỗi 500. Trường hợp này tất cả nhừng gì bạn có thể làm là xóa file .htaccess
Cũng có thể server bạn dùng không cho phép thêm tùy chọn “FollowSymLinks”. Bạn có thể xóa tùy chọn “FollowSymLinks” này và thử lại.
Giải thích dòng lệnh đã dùng
Ba dòng lệch nói trên, dòng đầu tiên cho phép máy chủ Apache thực thi liên kết tượng trưng. Dòng lệnh thay cho phép sửa lại cấu hình ngầm định trong file httpd.conf.
Dòng thứ hai kích hoạt chức năng viết lại đường dẫn URL. Trong bất kể trường hợp nào, độc lâp với cách viết lại đường dẫn, bạn luôn phải thêm «RewriteEngine on» vào trong file .htaccess.
Dòng thứ ba chính là luật viết lại đường dẫn; chúng ta hày cùng phân tích :
* RewriteRule : Từ khóa thường trực, xuất hiện trong mọi cú phát viết lại URL
* ^thunghiem.html$ : Phần đầu tiên của luật viết, cho phép xác định chuỗi ký tự mà mô đun sẽ viết lại (kết quả trả về). Nó gồm hai ký tự đặc biệt đánh dấu bắt đầu (^) và kết thúc ($) một dòng
* eureka.html : Chuỗi ký tự thường là chỉ định file cần đọc để thay thế file đã chỉ định ở phần trước (thunghiem.html)
* L : Đánh dấu kết thúc luật viết (L=last). Mô đun kết thúc việc tìm kiếm viết lại ký tự chỉ định.
Ví dụ trên rất ngặn gọn nhưng cung cấp cho bạn kiến thức cơ bản để thiết lập các luật viết tùy biến.
Bạn thấy đơn giản phải không nào ? Vậy thì hày có hiểu thấu đáo trước khi chuyển tới các bước sau. Mọi thứ sẽ phức tạp hơn nhiều đấy