Friday , 22 November 2024
HOT

Sử dụng UrlRewrite trong ASP.NET

Với ASP.NET 2.0 việc Rewrite Url đã trở nên đơn giản hơn bao giờ hết, trong bài này chúng ta hãy cùng tìm hiểu UrlRewriting.NET 2.0

1. Url rewrite là gì? để làm gì?

Url rewrite là việc can thiệp để tạo ra các liên kết thân thiện hơn với người dùng (dễ nhận ra nội dung của liên kết), hiệu quả hơn với các công cụ tìm kiếm (cho phép nội dung của bạn dc nhận ra dễ dàng hơn khi phần tích url của nó)

Ví dụ với 1 Url

http://abc.com/product.aspx?id=123 là một địa chỉ khó nhớ với người dùng, hơn nữa lại không thân thiện với Search Engine

trong khi với 1 Url đã Rewrite http://abc.com/products/123_may-tinh-xach-tay người dùng ở đây đã nhìn ra sản phẩm này là Máy tính xách tay rõ ràng ở ngay trên Url, hơn nữa với Url này Search Engine sẽ dễ dàng tìm ra website của bạn hơn.

Hơn nữa khi bạn sử dụng UrlRewrite (phải kết hợp từ khóa lên Url) sẽ cực kỳ hữu ích với Search Engine bởi vì khi người dùng Search 1 từ khóa là “máy tính xách tay” thì hiển nhiên url của bạn đã có sẵn từ khóa này rồi, bạn sẽ thu hút được nhiều người sử dụng đến với Website mình hơn.

2. Sử dụng & Cài đặt

B1: Download file UrlRewritingNet.UrlRewriter.dll tại đây hoặc đây

B2: bạn copy file này vào trong thư mục Bin của Project

B3: Bạn click chuột phải vào Folder References của Project –> chọn Add Reference

url rewrite asp.net

B4: Cấu hình trong file Web.Config

bạn tìm đến trước thẻ đóng </configSections> thêm

<section name="urlrewritingnet" requirePermission ="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"  />

thêm vào trong httpModules


<httpModules>
  <clear/>
  <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
</httpModules>

Cấu hình UrlRewrite

bạn thêm trước thẻ appSettings


<urlrewritingnet
      rewriteOnlyVirtualUrls="true"
      contextItemsPrefix="QueryString"
      defaultPage = "default.aspx"
      defaultProvider="RegEx"
      xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
  <rewrites>
    <add name="RedirectInApplication"  virtualUrl="^~/redirect/(.*)/Default.aspx"
         rewriteUrlParameter="ExcludeFromClientQueryString"
         destinationUrl="~/$1/Redirected.aspx"
         redirect="Application"
         redirectMode="Permanent"
         ignoreCase="true" />
    <add name="RewriteTest" virtualUrl="^~/Home/(.*).aspx"
         rewriteUrlParameter="ExcludeFromClientQueryString"
         destinationUrl="~/Default.aspx?Query=$1"
         ignoreCase="true" />
    <add name="KickBrowserToDomain" virtualUrl="^http\://(.*)/kickto/(.*).aspx"
       rewriteUrlParameter="ExcludeFromClientQueryString"
       destinationUrl="http://$2?source=$1"
       redirect="Domain"
       redirectMode="Permanent"
       ignoreCase="true" />
  </rewrites>
</urlrewritingnet>

ở đây mình chỉ demo thôi vì vậy sẽ có 1 số cái bạn cần quan tâm:

<add name="RewriteTest" virtualUrl="^~/Home/(.*).aspx"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="~/Default.aspx?Query=$1"
     ignoreCase="true" />

cái này là hay sử dụng nhất nó sẽ Rewrite như sau:

http://abc.com/Default.aspx?Query=123 thành

http://abc.com/Home/123.aspx

ngoài ra bạn có thể thêm tham số để Rewrite

http://abc.com/Default.aspx?Query=123&QueryName=bo-suu-tap thành

http://abc.com/Home/123_bo-suu-tap.aspx

để làm được như vậy chúng ta cấu hình như sau:


<add name="RewriteTest" virtualUrl="^~/Home/(.*)_(.*).aspx"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="~/Default.aspx?Query=$1&QueryName=$2"
     ignoreCase="true" />


3. Cấu hình với IIS 7.0

Với demo bên trên bạn chỉ sử dụng được với IIS6.0 trở xuống, để chạy được với IIS7 trở lên chúng ta thêm vào gần dưới cùng của file Web.config như sau:


<!--
    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.
-->
<system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules>
    <remove name="ScriptModule" />
    <remove name="UrlRewriteModule" />
    <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
  </modules>
</system.webServer>

Download Demo Project tại đây

Trên đây bạn đã có thể sử dụng UrlRewrite để thay đổi Url của bạn như ý muốn rồi.

Bài tiếp theo mình sẽ hướng dẫn các bạn Config & sử dụng Url Rewrite Module trong IIS7

N g u ồ n : m e o t o m . n e t

Leave a Reply

Your email address will not be published. Required fields are marked *

*