Copyright© Mat Bao Company. All Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Mắt Bão có nghĩa là bạn đồng ý với Thỏa thuận sử dụng và Chính sách bảo mật của chúng tôi.
Công ty cổ phần Mắt Bão - Giấy phép kinh doanh số: 0302712571 cấp ngày 04/09/2002 bởi Sở Kế Hoạch và Đầu Tư Tp. Hồ Chí Minh.
Giấy phép cung cấp dịch vụ Viễn thông số 247/GP-CVT cấp ngày 08 tháng 05 năm 2018.
URL Rewrite như thế nào ?
Có bạn hỏi làm sao tạo được các đường dẫn đẹp như các trang trên mạng? Trước tiên chúng ta hãy tìm hiểu cơ chế việc này:
– Rewrite Engine là một phần dịch vụ của Webserver được dùng để thay đổi URL (đường dẫn trên trình duyệt) sang một dạng khác với nhiều mục đích khác nhau.
– Kỹ thuật được nói đến là URL Rewriting và nó đem lại 1 số tiện lợi sau:
- Làm cho URL trở nên thân thiện với người dùng cũng như dễ dàng với các Search Engine (bộ máy tìm kiếm).
- Tăng cường khả năng bảo mật của website bằng việc hạn chế bị khai thác các link quan trọng.
Bản chất của việc Rewrite này các bạn có thể hình dung như khi bạn gõ 1 đường link lên trình duyệt như sau: http://domain.com/news/2014/24/04 thì đây là đường dẫn ảo, và khi request đến Webserver nó sẽ đổi lại thành đường dẫn thật như http://domain.com/index.php?mod=news&year=2014&day=24&month=04(có thể là như thế này vì có nhiều cách rewrite).
A.Đối với Server Apache:
1.Kích hoạt mod mod_rewrite có sẵn trong Apache:
– Bẳng cách cấu hình trong file httpd.conf.
– Ngoài ra, môi trường Shared hosting mặc định đã hỗ trợ.
2.Tạo 1 file .htaccess thư mục gốc của web của bạn có nội dung như sau:
Đầu tiên bật Rewrite Engine:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
Tiếp đến là viết cú pháp RewriteRule:
RewriteRule ^Virtual_Path Real_Path
Ví dụ: topic_1.html thành index.php?topic=1
RewriteRule ^topic_([0-9]*).html index.php?topic=$1
Ví dụ: article/1/page/2 thành index.php?article=1&page=2
RewriteRule ^article/([0-9]*)/page/([0-9]*) index.php?article=$1&page=$2
Cú pháp để viết các Rule này giống như cách viết của biểu thức chính quy 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.
Ngoài ra, bạn còn có thể tìm hiểu thêm tại Apache mod_rewrite.
B.Đối với Server IIS:
Tham khảo cài đặt và cấu hình : IIS Mod_Rewrite
IIRF: Sử dụng để cấu hình Rewrite URL cho các website trên Cloud Windows Hosting
C.Tài liệu tham khảo:
Rewrite_engine
Ngoài các cách thức như trên để đơn giản các bạn có thể tạo ra những phương pháp khác nhau để làm cho URL trở nên đẹp và thân thiện. Dưới đây là 1 số ví dụ cụ thể:
Cách 1 :
http://domain.com/index.php/news/2014/24/041
Nhìn có vẻ rất giống với kiểu rewrite ở trên nhưng khác ở chỗ đây là đường dẫn thật sự của website.
Đường dẫn này hiểu như là 1 request đến file index.php với Query String là /news/2014/24/01, các bạn tách Query String này ra rồi sử dụng theo mục đích của mình.
Cách 2 :
http://domain.com/index.php/news_2014_24_04.html
Gần giống cách 1 ở trên nhưng đường dẫn khác thân thiện với đuôi html, dễ dàng cho các Search engine tìm kiếm nội dung.
Cách 3 :
http://domain.com/index.php?q=news/2014/24/04
Cũng gần giống cách 1 nhưng nó rõ ràng hơn, nó được dùng trong FrameWork Drupal của PHP.
Và có thể có nhiều cách khác nữa mà bạn có thể tự nghĩ ra hoặc có thể dùng cách mã hoá Query String chẳng hạn.