Ví dụ: thật sự bạn cần đưa ra 1 url như sau:
(1) http://www.banhang.com?product.aspx?...tType=Hardware
nhưng thực tế trên thanh địa chỉ của trình duyệt thì phải là:
(2) http://www.banhang.com/Product/Hardware/123 chẳng hạn.
Lúc này RewiteURL đã làm cái việc chuyển đổi (2) -> (1) theo một quy tắc người lập trình quy định.
Ví dụ dưới kèm theo sẽ minh họa cách rewrite những Url aspx thành aspvn
Cách bước thực hiện như sau:
- Tạo 1 class có tên là RewriteUrlClass thừa kế từ IHttpModule
Code:using System;
using System.Web;
public class RewriteUrlClass : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += Context_BeginRequest;
}
private static void Context_BeginRequest(object sender, EventArgs e)
{
HttpApplication httpApplication = (HttpApplication) sender;
string url = httpApplication.Request.RawUrl.ToLower();
// Nếu là Url ảo như sau"
if (url.Contains("/default.aspvn"))
{
// Thì Url thực mà Server cần xử lý là:
httpApplication.Context.RewritePath("Default.aspx");
}
// Nếu là Url ảo như sau"
if (url.Contains("/login.aspvn"))
{
// Thì Url thực mà Server cần xử lý là:
httpApplication.Context.RewritePath("Login.aspx");
}
// Tùy thuộc vào quy tắt Rewrite mà chúng ta xử lý.
// Một trong những cách hiệu quả nhất là dùng Regex Expression.
}
#endregion
}
- Đăng kývào httpModules trong Web.config như dưới đây:
Code:<system.web>
<httpModules>
<!-- BEGIN: MY URL REWRITE -->
<addname="MyUrlRewriter"type="RewriteUrlClass"/>
<!-- END: MY URL REWRITE -->
</httpModules>
.
.
.
</system.web> - Chạy thử với các url có nằm trong quy tắc rewite RewriteUrlClass trong class có phần mở rộng là aspvn
Tác giả: Ngô Thanh Tùng - Aptech
Download: Click here!
0 nhận xét:
Post a Comment