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ì?. Url rewrite là việc can thiệp
Trang 1Vớ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
?
code
1 <sectionname="urlrewritingnet"requirePermission="false"type="UrlRewritingNet.Configuration.UrlRe UrlRewritingNet.UrlRewriter" />
thêm vào trong httpModules
Trang 2code
1
2
3
4
<httpModules>
<clear/>
<addname="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>
<addname="RedirectInApplication"
virtualUrl="^~/redirect/(.*)/Default.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/$1/Redirected.aspx"
redirect="Application"
redirectMode="Permanent"
ignoreCase="true"/>
<addname="RewriteTest"virtualUrl="^~/Home/(.*).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?Query=$1"
ignoreCase="true"/>
<addname="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
<addname="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:
Trang 3code
1
2
3
4
<addname="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:
?
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>
<validationvalidateIntegratedModeConfiguration="false"/>
<modules>
<removename="ScriptModule"/>
<removename="UrlRewriteModule"/>
<addname="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