Cách sử dụng UrlRewriting

Cách sử dụng UrlRewriting trong asp.net

  1. UrlRewriting để làm gì trong aspx.net ?
  2. Cách sử dụng UrlRewriting
  3. Một số lỗi khi sử dụng UrlRewriting trong Asp.net
  4. Một số ứng dụng hay về UrlRewriting

1. UrlRewriting để làm gì trong aspx.net ?

Trả lời: UrlRewriting là 1 thư viện giúp cho đường dẫn web trở nên gọn, thân thiện hơn, quan trọng là giúp 1 website SEO (tìm kiếm) tốt hơn

- Chưa dùng UrlRewriting thì 1 link có dạng: iif.vn/page.aspx?id=10
- Sau khi sử dụng UrlRewriting  thì link là iif.vn/javascript/bien-mang

2. Cách sử dụng UrlRewriting

Bước 1: Thêm vào web.config

  <urlrewritingnet configSource="App_Data\UrlRewriting_SAVE.xml" />

Bước 2: Thêm vào thư mục bin
 file UrlRewritingNet.UrlRewriter.dll

Bước 3: Cấu hình file

<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
  <rewrites>
      <add name="hoso_duan_ct" virtualUrl="^~/ho-so-du-an/([0-9]*)-([\w-]*)"
             rewriteUrlParameter="ExcludeFromClientQueryString"
             destinationUrl="~/noidung.aspx?id=$1"
             ignoreCase="true" />
    
    <add name="hoso_duan" virtualUrl="^~/ho-so-du-an"
        rewriteUrlParameter="ExcludeFromClientQueryString"
        destinationUrl="~/noidung_list.aspx?type=2"
        ignoreCase="true" />

  </rewrites>
</urlrewritingnet>   
 

Giải thích urlrewritingnet:

^~/ho-so-du-an/([0-9]*)-([\w-]*)
([0-9]*)-([\w-]*)

  destinationUrl="~/noidung.aspx?id=$1"
  destinationUrl là file aspx vật lý truy cập đến.

  ([\w-] có nghĩa là url có dạng huong-dan-su-dung-url
     Nếu không có dấu - thì sẽ lỗi
  Nếu không muốn có dấu khác hãy đổi lại, ví dụ là dấu cách thì ([\w ]
 

3. Một số lỗi hay gặp khi UrlRewriting trong ASP.NET

1. Không gõ được ký tự đặc biết trong cấu hình UrlRewriting

   <add name="hoso_duan_ct" virtualUrl="^~/ho-so-du-an/([0-9]*)-([\w-]*)"
             rewriteUrlParameter="ExcludeFromClientQueryString"
             destinationUrl="~/noidung.aspx?id=$1&type=$2"
             ignoreCase="true" />
    Dấu & sẽ lỗi, chuyển sang dấu &amp;

Cách fix: destinationUrl="~/noidung.aspx?id=$1&amp;$2"

2.Sử dụng nhiều tham số query UrlRewriting

 <add name="lienhe_pheu" virtualUrl="^~/lien-he/([\w-]*)-([\w-]*)"
         rewriteUrlParameter="ExcludeFromClientQueryString"
         destinationUrl="~/lien-he/Default.aspx"
         ignoreCase="true" />

 Cách fix: ~/lien-he/([\w-]*)--([\w-]*)   , không để cùng tham số kiểu chữ trên cùng 1 dài url
  Nhưng có thể được với  ~/ho-so-du-an/([0-9]*)-([\w-]*)
 

4. Một số ứng dụng hayUrlRewriting

Cách chuyển hướng SEO 301

Cách này bạn không cần can thiệp đến code aspx

Chuyển từ http sang https

<add name="301_redirect"
virtualUrl="^http://tenmien.iif/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="https://tenmien.iif/$1"
redirect="Domain"
redirectMode="Permanent" ignoreCase="true" />

Chuyển từ có ww sang không có www

   <add name="301_redirect"
    virtualUrl="^https://www.nhatthanh.net/(.*)"
    rewriteUrlParameter="ExcludeFromClientQueryString"
    destinationUrl="https://nhatthanh.net/$1"
    redirect="Domain"
    redirectMode="Permanent" ignoreCase="true" />

 

 

Cách sử dụng UrlRewriting trong asp.net