Đang nạp dữ liệu ...
DANH MỤC
Thư viện mã nguồn
Rewrite Url, thật đơn giản!
Ngày cập nhật: 04/09/2008 10:54:41 CH
Người cập nhật: thanhtungo@yahoo.com
Lượt xem: 13.359     Lượt tải: 521     Bình luận: 8

Kỹ thuật rewrite URL là kỹ thuật dùng để che giấu url thật nhằm chống lại khả năng tấn công vào url.

Ví dụ: thật sự bạn cần đưa ra 1 url như sau:
(1) http://www.banhang.com?product.aspx?productID=123&ProductType=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:
  1. Tạo 1 class có tên là RewriteUrlClass thừa kế từ IHttpModule:

    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

    }


  2. Đăng ký vào httpModules trong Web.config như dưới đây:

        

    <system.web>

            <httpModules>

                <!-- BEGIN: MY URL REWRITE -->

                <add name="MyUrlRewriter" type="RewriteUrlClass"/>

                <!-- END: MY URL REWRITE -->

            </httpModules>

            .

            .

            .

    </system.web>

  3. 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

Mời tham gia thảo luận tại đây






 

Ghi chú: Bạn phải trước khi download.


Ý kiến bạn đọc:

Trả lời: Rewrite Url, thật đơn giản!
bởi: cuong.vvl411@gmail.com , lúc: 21/04/2012 12:01:16 SA
nhầm hay không đấy sao mình làm như trên không hiển thị được nhỉ????


Trả lời: Rewrite Url, thật đơn giản!
bởi: phupngnam_bx@yahoo.com , lúc: 16/03/2011 3:43:58 CH
Mình làm nhưng nó cứ lỗi <add name="MyUrlRewriter" type="RewriteUrlClass"/> Vậy cần cấu hình gì không? Thanks


Trả lời: Rewrite Url, thật đơn giản!
bởi: vodanh8088@gmail.com , lúc: 02/12/2010 12:55:08 CH
để mình test xem tn nào


Trả lời: Rewrite Url, thật đơn giản!
bởi: vodanh8088@gmail.com , lúc: 02/12/2010 12:54:28 CH
không biết thế nào mình thử test xem thế nào


Trả lời: Rewrite Url, thật đơn giản!
bởi: canyounet@gmail.com , lúc: 23/10/2010 10:10:34 SA
Minh ap dung vao du an , lam tat ca cac site khong chuyen trang duoc bang


Trả lời: Rewrite Url, thật đơn giản!
bởi: canyounet@gmail.com , lúc: 16/10/2010 4:20:21 CH
Mong cac ban HD lam ro van de nay hon nua . Nham nang cao chat luong dien dan


Trả lời: Rewrite Url, thật đơn giản!
bởi: khongbiet@gmail.com , lúc: 19/09/2010 4:00:10 CH
Do choi con nit sao vay, vay ma goi la urlrewrite do sao?


Trả lời: Rewrite Url, thật đơn giản!
bởi: matbao868@yahoo.com , lúc: 05/08/2010 11:17:49 CH
Nếu muốn rewrite dạng: "http://abc.com/tieu-de-bai-viet.html" thì làm thế nào?




Ý kiến của bạn

Tiêu đề:
  
Email (bắt buộc):
  
Nội dung phản hồi:

  
Mã xác nhận: Gửi phản hồi
Copyright © by ASP.NET VIETNAM
Contact us: ngothanhtung.it@gmail.com