Chắc hẳn các bạn đã từng thấ y các website với link (URL) đơn giản như: http://www.yoursite.com/news/1.html hoặc link phức tạp: www.yoursite.com/mod=news&id=1, nếu đem so thì URL đầu tiên trông đẹp mắt và dễ nhớ hơn so với URL thứ hai. Ngoài ra URL thứ nhất nó còn giúp cho website mình thoát khỏi cặp mắt tò mò của những kẻ phá phách biết cấu trúc website của mình mà phá hoại, hơn nữa nó còn một lợi nữa là khi các Search Engine (Google, Yahoo) index thì chúng sẽ ưu tiên với những URL dễ nhớ như trường hợp URL thứ nhất. Từ đó website chúng ta sẽ dễ dàng lọt vào danh sách tìm kiếm của chúng.
Chúng ta có thể hiểu như sau: khi chúng ta gõ link : http://www.yoursite.com/news/1.html và khi requyest tới webserver nó sẽ chuyển thành link thật sự như sau: www.yoursite.com/mod=news&id=1. Bây giờ chúng ta hãy bắt tay vào thực hiện công việc đó nhé.
Đối với Apache Server.
Trước tiên cần bật mod mod_rewrite trong file httpd.conf lên nếu chưa bật chúng ta sẽ nhận thông báo lỗi như hình bên dưới. Kích hoạt mod mod_rewrite có sẵn trong Apache bằng cách sữa trong file httpd.conf, bạn Find dòng chứa rewrite_module rồii bỏ dấu # (nếu có) đi. Sau đó restart Apache. Nếu bạn dùng các host trên internet thì có thì đã có sẵn rồi.

Sau khi đã bật mod rewrite xong, công việc kế tiếp là tạo file .htaccess (Lưu ý rằng tên file là .htaccess và không có phần mở rộng) với nội dung sau:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
Tiếp theo là viết cú pháp RewriteRule:
RewriteRule ^Virtual_Path Real_Path
Ví dụ:
RewriteRule ^topic_([0-9]*).html index.php?topic=$1
ví dụ: topic_1.html thành index.php?topic
RewriteRule ^article/([0-9]*)/page/([0-9]*) index.php?article=$1&page=$2
ví d?: article/1/page/2 thành index.php?article=1&page=2
Cú pháp viết các Rule này giống như cách viết câu biểu thức Regular Expression. ví dụ như sau:
(.*) nhận tất cả các giá trị.
([0-9]*) chỉ nhận các giá trị là số từ 0-9.
([a-zA-Z]*) chỉ nhận các giá trị là chữ cái, từ a-z và A-Z.
Sau khi tạo file htaccess bạn copy nó vào thư mục gốc của website là có thể chạy được.
Gửi lời bình luận