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