- Bài viết từ: mathforums.hcmup.edu.vn
- Tham khảo chi tiết: Module mod_rewrite - URL Rewriting Engine
(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.
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.
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:
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.
Chúc bạn thành công!
Comments
Chào bạn.
"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."
Vậy làm sao để cài đặt module này ở localhost?
Mình muốn test chức năng của .htaccess ở local nhưng không biết phải khởi động như thế nào. Giúp mình với nhé.
Kích hoạt module rewrite
Kích hoạt module rewrite
- Vào folder đã cài đặt Apache, mở file conf/httpd.conf
- Dùng chức năng search, tìm dòng có chuỗi 'mod_rewrite'
- Uncomment (bỏ dấu # đầu dòng)
- Lưu file lại
- Khởi động lại Apache
Edit file .htaccess: Mở bằng editor nào cũng được, ngay cả notepad.
Thế Hồng,
Delete visited website on the Address bar
Co' ba.n na`o bie^'t delete the visited website on the address bar, username ..
usually they have done by click on "Tool" , then select "Internet Option" , select "General" tab, click on "Delete File" button, click on "Clear History" button....
Toi da~ la`m du'ng nhu* tre^n, but sometime in the regedit menu stored some usernames ...
C'am on* toila.net nhie^`u
Duy2007
Post new comment