Trở lại thư mục Web bạn sẽ thấy Windows sẽ tự tạo ra một file web.config mới với nội dung là các hàm URL Rewrite tương ứng. 5 of 9.[r]
(1)"Chuyên trang dành cho kỹ thuật viên tin học" CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT
IIS Web Server - Part - URL Rewrite in IIS7 with URL Rewrite Module Giới thiệu:
Microsoft URL Rewrite cho IIS 7.0 cung cấp quy tắc linh hoạt nhằm viết lại liên kết website theo dang khác mà đảm bảo nội dung liên kết
* Việc viết lại URL dựa vào HTTP headers server variables * Nội dung trang web
* Sự truy nhập tới nội dung trang web cần kiểm soát
Download Module
Download the x86 CTP version for IIS 7.0: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691
Download the x64 CTP version for IIS 7.0: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1692
Để sử dụng URL Rewrite bạn cần chuẩn bị đủ yêu cầu sau: IIS 7.0 & ASP.NET phải enabled;
2 URL rewrite module phải cài đặt 1 Khởi tạo chạy thử URL Rewrite
Để sử dụng URL Rewrite tơi sử dụng ví dụ với trang web ASP.Net Trang web chạy server variables trích xuất kết chúng trình duyệt
Copy toàn nội dung trang ASP.NET vào thư mục %SystemDrive%\inetpub\wwwroot\ file ví dụ article.aspx:
Nội dung đoạn 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>
(2)<td>< %= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td> </tr>
<tr>
<td>Final URL: </td>
<td>< %= Request.ServerVariables["PATH_INFO"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td> </tr>
</table> </body> </html>
Sau copy xong bạn vào http://localhost/article.aspx để test thử
2 Tiến hành URL Rewrite
Trong hướng dẫn bạn Rewrite link đại khái trang Vnexpress.net , Vietnamnet.vn … có dạng bên dưới:
http://localhost/article/342/some-article-title
sẽ hiểu link:
http://localhost/article.aspx?id=342&title=some-article-title
Chúng ta sử dụng URL Rewrite UI IIS Manager Bạn làm theo bước:
Vào IIS Manager
Chọn "Default Web Site"
2
Trong Feature View chọn "URL Rewrite Module"
(3)Trong mục "Actions" bên phải chọn "Add rule…"
Đến ta có cách để Rewrite trang Web:
Cách 1: chọn User friendly URL
(4)Sau nhập chuỗi article.aspx?id=123&title=abc vào ô friendly URLs
Chú ý 123 đại diện cho Request số abc đại điện cho Request chữ bạn thay 123 số tương tự với abc bạn thay abc chuỗi ký tự
(5)Nhấp vào Edit Rule ta thấy chi tiết giá trị Rule bạn tùy chỉnh lại giá trị
Trở lại thư mục Web bạn thấy Windows tự tạo file web.config với nội dung hàm URL Rewrite tương ứng
(6)4 Sử dụng URL Rewrite Redirect:
Với cách bạn dễ dàng chuyển trang URL Rewrite ví dụ bên http://localhost/blog/some-other-title/543
sẽ chuyển đến:
http://localhost/article/543/some-other-title
Cách cấu hình tương tự có số thay đổi khác chút: Ơ Name bạn nhập: "Redirect from blog"
Ô Pattern nhập: "^blog/([_0-9a-z-]+)/([0-9]+)"
Mục Action chọn là: "Redirect"
Ô Redirect URL nhập là: "article/{R:2}/{R:1}"
(7)http://localhost/blog/some-other-title/323 Bạn thấy chuyển đến trang
http://localhost/article/323/some-other-title
5 Ngăn chặn truy cập trực tiếp:
Quy tắc thứ ba mà giới thiệu đến bạn dùng để ngăn chặn yêu cầu tới trang web u cầu khơng có định nghĩa URL Rewrite Kiểu quy tắc hữu ích bạn muốn ngăn ngừa nỗ lực hacker muốn tìm cách truy cập trực tiếp file nhằm khai thác lỗi
SQL Injection
Mở file web.config chèn thêm đoạn code sau vào: <rule name="Fail bad requests">
<match url="."/> <conditions>
<add input="{HTTP_HOST}" pattern="localhost" negate="true" /> </conditions>
<action type="AbortRequest" /> </rule>
Bạn cần phải viết lại sau: <rewrite>
<rules>
<rule name="Fail bad requests"> <match url="."/>
<conditions>
<add input="{HTTP_HOST}" pattern="localhost" negate="true" /> </conditions>
<action type="AbortRequest" /> </rule>
<rule name="Redirect from blog">
<match url="^blog/([_0-9a-z-]+)/([0-9]+)" />
<action type="Redirect" url="article/{R:2}/{R:1}" redirectType="Found" /> </rule>
<rule name="Rewrite to article.aspx">
<match url="^article/([0-9]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="article.aspx?id={R:1}&title={R:2}" /> </rule>
</rules> </rewrite>
Kết luận
Trong viết hy vọng bạn hiểu để định hình URL Rewrite có quy tắc áp dụng chúng sao, cách sử dụng IIS Manager windows hay việc tay soạn thảo file web.config
Chúc bạn thành công!
OK vừa trình bày xong phần URL Rewrite IIS7 với URL Rewrite Module
Công ty TNHH đầu tư phát triển tin học GC Com Chuyên trang kỹ thuật máy vi tính cho kỹ thuật viên tin học
Điện thoại: (073) - 3.511.373 - 6.274.294
Website: http://www.gccom.net