Microsoft URL Rewrite là một module chạy trên IIS 7.0, module này giúp viết lại liên kết URL một cách linh hoạt nhưng vẫn đảm bảo nội dung trong liên kết đó không bị thay đổi so với nội dung liên kết ban đầu nhưng sẽ không bị giới hạn ở các điểm sau:
- Tối ưu hóa URL và bộ máy tìm kiếm.
- Rewrite URL cơ bản dựa vào HTTP header và server variables
- Nội dung website
- Điều khiển, xử lí nội dung website dựa trên URL segment hoặc request data
Các điểm đặc trưng của Microsoft URL Rewrite - Rules-based URL rewrting engine
- Regular expression pattern matching
- Wildcard pattern matching
- Global and distributed rewrite rules.
- Access to server variables and http headers
- Various rule actions
- Support for IIS kernel mode and user mode output caching
- String manipulation functions.
- Rewrite maps.
- Failed Request Tracing support.
- Rule templates
- UI for testing of regular expression and wilcard patterns
- UI for managing rewrite rules and rewrite maps.
- GUI tool for importing of mod_rewrite rules
Download module
Yêu cầu:
- IIS 7.0 với ASP.NET được enable
- URL rewrite module đã được cài đặt.
Việc cài đặt URL Rewrite khá đơn giản nên chúng ta bỏ qua.
Trước tiên,chúng ta demo thử module.Sử dụng một trang web đơn giản.
Copy ASP.NET code đây và save lại trong %SystemDrive%\inetpub\wwwroot\folder
và đặt tên là article.aspx
Code:<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>URL Rewrite Module Test</title></head><body><h1>URL Rewrite Module Test Page</h1><table><tr><th>Server Variable</th><th>Value</th></tr><tr><td>Original URL: </td><td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td></tr><tr><td>Final URL: </td><td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td></tr></table></body></html> Sau đó,mở trình duyệt và gõ vào địa chỉ http://localhost/article.aspx và kiểm tra TẠO MỘT REWRITE RULEChúng ta sẽ tạo ra một rewrite rule đơn giản và có dạng như sau:http://localhost/article/342/some-article-titlevà nội dung trong liên kết trên sẽ giống như trong liên kết sau:http://localhost/article.aspx?id342&...-article-titleMở IIS Manager.Chọn Default Web SiteTrên mục Feature View click URL Rewrite Tại khung Actions ở bên phải,click Add rules.Lúc đó sẽ xuất hiện bảng Add rule(s).Click vào Blank rule sau đó click OK.
Rewrite được định nghĩa yêu cầu phải có 4 thông tin sau:
- Tên của rule
- Kiểu sử dụng của chuỗi URL
- Các tùy chọn về điều kiện.
- Tất cả các điều kiện đều đã được kiểm tra thành công.
Tại mục Name,gõ tên của rule vào,chẳng hạn Rewrite to article.aspx
Tại mục Pattern,bạn nhập chuỗi sau.
Code:
^article/([0-9]+)/([_0-9a-z-]+)
Chuỗi trên thỏa các điều kiện sau:
- Bắt đầu với kí tự ”article “
- Bao gồm 1 hoặc nhiều kí tự sau dấu ”/ “ đầu tiên
- Bao gồm 1 hoặc nhiều kí tự ”_ “ hoặc ” – “ sau dấu ”/ “ thứ hai.
Sau khi rule đã được tạo để thực hiện chức năng viết lại URL,tại mục Action,bạn chọn Action type là Rewrite.Tại mục Rewrite URL ,nhập chuỗi sau vào
Code:
article.aspx?id={R:1}&title={R:2}
Chú ý : giá trị của chuỗi truy vấn mà chúng ta sử dụng là {R:1} và {R:2}