Cấ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
Tiế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: />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
Như 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>
6.
Test URL Rewrite Module on IIS 7
<table>
7.
<tr>
8.
9.
<th>Server Variable</th>
10.
<th>Value</th>
11.
</tr>
12.
<tr>
<td>Original URL: </td>
13.
14.
<td><
%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
15.
</tr>
16.
<tr>
<td>Final URL: </td>
17.
18.
<td><
%= Request.ServerVariables["PATH_INFO"] + "?" + Request.S
erverVariables["QUERY_STRING"] %></td>
19.
20.
</tr>
</table>
21.
22.
23. </body>
24. </html>
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
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.
2.
<rules>
<rule name="NameToRewrite" enabled="true">
<match url="^song/([0-9]+)/([_0-9a-z-]+)" />
3.
4.
5.
6.
</rule>
</rules>
7. </rewrite>
Chú ý: ở đâ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)...
Chọn tiếp User-friendly URL
Trong ô đầu tiên bạn nhập vào chuỗi: song.aspx?id=123&title=abc
Ở đâ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
Bạ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