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 để to ra c ln kết thân thiện 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 vi 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ụ vi 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 thin 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 y là Máy tính xách tay rõ ràng ở ngay trên Url, hơn na 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ẽ cc kỳ hữu ích với Search Engine bởi vì
khi nờ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 vi Website mìnhn.
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 o trong thư mc Bin của Project
B3: Bạn click chuột phải vào Folder References của Project --> chọn Add Reference
B4: Cấu hình trong file Web.Config
bạn tìm đến trước thẻ đóng </configSections> thêm
?
code
1 <section name="urlrewritingnet" requirePermission ="false"
type="UrlRewritingNet.Configuration.UrlRe
UrlRewritingNet.UrlRewriter" />
thêm vào trong httpModules
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
?
code
1
2
3
4
<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
?
code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<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:
?
code
1
2
3
4
<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:
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
?
code
1
2
3
4
<add name="RewriteTest" virtualUrl="^~/Home/(.*)_(.*).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?Query=$1&amp;QueryName=$2"
ignoreCase="true" />
3. Cấu hình vi IIS 7.0
Với demo bên trên bạn chỉ sử dụng được vi IIS6.0 tr xuống, để chạy được với IIS7 trlên chúng ta thêm vào
gần dưới cùng của file Web.config như sau:
?
code
1
2
3
4
5
6
7
8
9
10
11
12
<!--
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
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.