modRewrite là một module tuyệt vời của Apache. Bài này sẽ chỉ một số áp dụng của modRewrite để đùa nghịch với các địa chỉ web. Các chỉ thị của modRewrite có thể đặt trong httpd.conf (phần cấu hình server, virtual host hoặc directory đều được) hoặc đặt trong .htaccess đều được. Cú pháp đơn giản của nó là RewriteRule tìm-cái-gì thay-thế-bằng-cái-gì, nếu muốn tìm hiểu thêm bạn có thể tham khảo Apache manual Để bật modRewrite trong .htaccess bạn dùng dòng RewriteEngine On. Nếu bị báo lỗi 500 thì có nghĩa là host của bạn không cài đặt module này.Để cài đặt modRewrite, bạn có thể tham khảo các bài viết về cài đặt Apache. 1. Đổi phần mở rộng Thay vì dùng index.php thì bạn có thể gọi bằng index.4u mà không cần đổi tên index.php thành index.4u Dưới đây là đoạn mã minh hoạ Mã lệnh RewriteEngine on RewriteRule ^(.*)\.4u /$1.php [QSA]QSA (Query String Appended) ý nói là phần sau dấu ? vẫn được thêm vào và giữ nguyên. 2. Không cần query string Giả dụ bạn muốn /index.php?act=view&cid=8&id=123 tự động thay bằng /view/8/123/ chẳng hạn (theo thí dụ của bạn), thì ta dùng .htaccess như sau: Mã lệnh RewriteEngine on RewriteRule ^view/([0-9]+)/([0-9]+)/$ /index.php?act=view&cid=$1&id=$2 Giải thích sơ qua: dòng đầu tiên bật RewriteEngine, dòng thứ 2 có dạng RewriteRule tìm thay-thế, chuỗi tìm của ta là ^view/([0-9]+)/([0-9]+)/$ với dấu ^ cho biết là vị trí đầu tiên, $ là vị trí cuối, ([0-9]+) là một chuỗi chỉ gồm các kí tự 0 đến 9 (hay nói cách khác, là 1 con số). Trong phần thay-thế cũng không có gì đặc biệt, ngoại trừ $1 và $2 là các giá trị tìm thấy ứng với 2 cặp ngoặc ([0-9]+) trong chuỗi tìm. Tương tự, bạn có thể thêm các RewriteRule khác theo ý thích.