Mod_Rewrite, tối ưu URL cơ bản
Viết lại đường dẫn URL qua mod_rewrite apache. Hướng dẫn chi tiết tiếng Việt.
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.so
AddModule 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.
- Tạo một file html đơn giản, đặt tên eureka.html chẳng hạn
- 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 +FollowSymlinks
RewriteEngine on
RewriteRule ^thunghiem.html$ eureka.html [L] - 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.
- 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
(Sẽ cập nhật tiếp)
Bài viết cùng chủ đề liên quan
- Viết lại đường dẫn URL (mod_rewrite, .htaccess, Apache)
Viết lại đường dẫn URL với Mod_Rewrite của Apache. Cấu hình .htaccess cơ bản - htaccess – .htaccess – Thuật ngữ SEO Webmaster – Quảng bá Website
.htaccess là tên ngầm định của một file cấu hình chứa các \"chỉ dẫn máy chủ\" - những dòng lệnh có thể hiểu và biên dịch bởi máy chủ - nhằm điểu khiển máy chủ. - Xử lý dấu tiếng Việt – Link URL thân thiện SEO
Xử lý chuỗi ký tự có dấu tiếng Việt. Viết lại đường link thân thiện Friendly URL cho SEO. - Bảo mật cho Blog WordPress cá nhân
Hướng dẫn phương pháp cơ bản tăng cường bảo mật cho Blog WordPress - Redirection 301 – Redirect 301
Phương pháp chuyển tiếp thông báo trình duyệt hay các bọ tìm kiếm rằng địa chỉ Website đã bị rời hoàn toàn tới địa chỉ mới và chuyển tiếp tới địa chỉ mới không cần can thiệp của người dùng.
Bình luận của bạn

October 10th, 2008 at 12:18
Tuyệt vời. Hướng dẫn tuyệt vời.
Thanks
February 13th, 2009 at 19:57
Hướng dẫn hay lắm, bạn đúng là Pro, mình đang tìm hiểu về MVC trong PHP nhưng còn hơi mập mờ, khi đọc bài viết này mình đã dần dần hiểu hơn rồi.
Nếu bạn có thể hướng dẫn tiếp về MVC một cách chi tiết thì không còn gì bằng.
Thanks!
October 23rd, 2009 at 0:31
Bạn cho mình hỏi một chút, nếu trong mo hinh MVC thì đặt file .htaccess ở đâu vậy.
Ví dụ mình sử dụng MVC của thằng codeigniter
August 9th, 2010 at 20:22
Minh ko phai dan chuyen chac phai nho ky thuat ben host thoi