ส่วนชนกลุ่มน้อย แบบผมที่เขียน .net ก็พอมีทางรอดครับ ด้วยการใช้ UrlRewritingNet.UrlRewriter.dll
ผลลัพท์การ rewrite url ถ้า config ตามในข้อ 3 จะประมาณนี้ครับ
url: http://localhost/URLRewriting/this-is-a-long-page-name
หน้าจริง: http://localhost/URLRewriting/longpage.aspx
อีกตัวอย่างครับ
url: http://localhost/URLRewriting/product5638.aspx
หน้าจริง: http://localhost/URLRewriting/search.aspx?id=5638
วิธี config มีดังนี้ครับ
1. ไปดาว์นโหลด UrlRewritingNet.UrlRewriter.dll ที่ http://sourceforge.net/projects/urlrewriter/files/ เลือกตัวที่เป็น .net นะครับ
2. จากนั้นก็ add reference : UrlRewritingNet.UrlRewriter.dll เข้าสู่ project ของท่าน
3. ที่ web.config ให้ใส่ค่าตามนี้ครับ
โค้ด: เลือกทั้งหมด
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="urlrewritingnet" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
</configSections>
<urlrewritingnet
rewriteOnlyVirtualUrls="true"
contextItemsPrefix="QueryString"
defaultPage="default.aspx"
defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
<rewrites>
<add name="this-is-a-long-page-name" virtualUrl="^~/this-is-a-long-page-name"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/longpage.aspx"
ignoreCase="true" />
<add name="Product-Search-uk" virtualUrl="^~/Product-Search-uk"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/search.aspx"
ignoreCase="true" />
<add name="submit-your-company" virtualUrl="^~/submit-your-company"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/submit_company.aspx"
ignoreCase="true" />
<add name="this-is-my-site-blog" virtualUrl="^~/this-is-my-site-blog"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/blog.aspx"
ignoreCase="true" />
<add name="contact-my-company" virtualUrl="^~/contact-my-company"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/contact.aspx"
ignoreCase="true" />
<add name="Product-Search-uk-partnumber" virtualUrl="^~/product(.*).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/search.aspx?id=$1"
ignoreCase="true" />
</rewrites>
</urlrewritingnet>
<appSettings/>
<system.web>
<customErrors mode="Off">
</customErrors>
<httpModules>
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
</httpModules>
<compilation debug="true" />
</system.web>
</configuration>