Cấu hình sử dụng URL Rewrite Module trong IIS 7Hiện tại, bạn có thể cài đặt IIS 7.x ở các phiên bản hệ điều hành: • Windows Vista • Windows Server 2008 • Windows 7 • Windows Server 2008
Trang 1Cấu hình sử dụng URL Rewrite Module trong IIS 7
Hiện tại, bạn có thể cài đặt IIS 7.x ở các phiên bản hệ điều hành:
• Windows Vista
• Windows Server 2008
• Windows 7
• Windows Server 2008 R2
Đối với Windows 7, ta vào Start > Control Panel > Programs and Features > Turn Windows features on or off > chọn Internet Infomation Services và chọn cài đặt ASP.NET
Trang 2Tiếp tục, ta sẽ cài thêm Module URL Rewrite (phiên bản mới nhất hiện tại là 2.0) Bạn có thể tải và cài đặt tại: http://www.iis.net/download/URLRewrite
Sau khi cài đặt xong URL Rewrite Module 2.0, trong IIS của bạn sẽ xuất hiện thêm Module này như hình bên dưới
Trang 3Như vậy là đã xong bước cài đặt những công cụ cần thiết Tiếp theo là bước Rewrite URL, ở
đây ta sẽ có 2 cách để Rewrite URL là cấu hình trực tiếp file Web.Config của website hoặc
sử dụng giao diện URL Rewrite Module vừa cài đặt lên IIS
Ở bài viết này, mình sẽ lấy ví dụ Rewrite URL cho các link xuất ra từ file song.aspx.
Các link dạng: http://localhost/song/123/take-me-to-your-heart
sẽ được hiểu như link: http://localhost/song.aspx?id=123&title=take-me-to-your-heart
Code của file Song.aspx như sau:
<%@ Page Language="C#"%>
1. <html>
2. <head runat="server">
3. <title></title>
4. </head>
5. <body>
Trang 46. <h1>Test URL Rewrite Module on IIS 7</h1>
7. <table>
8. <tr>
9. <th>Server Variable</th>
10. <th>Value</th>
11. </tr>
12. <tr>
13. <td>Original URL: </td>
14. <td><
%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
15. </tr>
16. <tr>
17. <td>Final URL: </td>
18. <td><
%= Request.ServerVariables["PATH_INFO"] + "?" + Request.S
erverVariables["QUERY_STRING"] %></td>
19. </tr>
20. </table>
21.
22. <h5>http://www.test.Com.Vn </h5>
23. </body>
24. </html>
Trang 5
Cách 1: Cấu hình trực tiếp file Web.Config:
Các bạn mở file Web.Config ra tìm đến dòng cuối dưới phần Comment
The system.webServer section is required for running ASP.NET AJAX under Internet Information Services 7.0 It is not necessary for previous version of IIS
>
nằm trong thẻ <system.webServer> các bạn thêm tag Rewrite cấu trúc như sau:
<rewrite>
1. <rules>
2. <rule name="NameToRewrite" enabled="true">
3. <match url="^song/([0-9]+)/([_0-9a-z-]+)" />
4. <action type="Rewrite" url="song.aspx?
ID={R:1}&Title={R:2}" />
5. </rule>
6. </rules>
7. </rewrite>
Trang 6Chú ý: ở đây bạn cần quan tâm
Thẻ <rule> có 2 thuộc tính là name và enabled Thuộc tính thứ nhất để xác định tên của thiết lập Rewrite, name là duy nhất và không được trùng nhau Thuộc tính enabled = true là kích
hoạt, = false là vô hiệu hóa rewrite này
Thẻ <match> là một chuỗi Regular Expression quy định kiểu URL mà bạn muốn rút gọn lại
(Xem thêm phần Regular Expression)
Thẻ <action> xác định đường dẫn gốc Có 2 giá trị {R:1} và {R:2} tương ứng với giá trị biến patten trong biểu thức Regular Expression.
Sau khi sửa xong file Web.Config, ta lưu lại và tiến hành chạy thử Sẽ có kết quả như hình dưới đây
Cách 2: Cấu hình trên IIS:
Mở IIS lên, bên cột Connection ở bên trái ta chọn Website cần Rewrite URL Ở khung bên phải, vào URL Rewrite và chọn Add Rule(s)
Trang 7Chọn tiếp User-friendly URL
Trong ô đầu tiên bạn nhập vào chuỗi: song.aspx?id=123&title=abc
Trang 8Ở đây 123 và abc ở đây sẽ đại diện cho các Request
Trong ô thứ 2 bạn chọn kiểu URL mà trình duyệt hiển thị cho người dùng Ví dụ ở đây mình
chọn song/123/abc
Xong, ta nhấn OK, và 1 Rule mới đã được tạo ra
Trang 9Bạn để ý sẽ thấy có 1 file Web.Config sẽ được tạo ra trong thư mục web của bạn, hoàn toàn giống như việc bạn tự tạo một file Web.Config bằng tay để cẩu hình Rewrite URL