先前曾經小研究一下關於SEO,如何讓網站更容易提高在搜尋引擎的能見度,這之間當然有不少的學問,但令梅干桑萬萬沒想到的事,竟然連網址也是影響排序的重點之一。當使用動態網頁時,最常見的就是在網址的地方不難會發現到,?id=n20910&date=20080127.…之類的。
?則是動態網頁用來傳送參數,而?、&、%、#這些符號卻是讓搜尋引擎望而卻步,主要原因則是這些網頁的實質資訊,都需依賴參數並從資料庫取得資料,但搜尋引擎目前的人工智慧還無法自行操作選單,因此並沒辦法直接產生這些動態網頁,為解決同時讓網址符合SEO,先前梅干桑則是想到了一個笨方法,就是將網址分解再取出參數,但最近在瓶水相逢的網站中,無意間發現到,利用 Url Rewriting除了能將 Querystring 隱藏起來外,如此一來既可防止參數外露同時還符合了SEO網址,真是一個二全其美的辦法,現在就來玩玩看吧!
Step1
下載urlrewiternet.rar並解縮將檔案放置到bin的資料夾中。
Step2
再新增一個Web.config並將下列語法copy到Web.config中,另外$1 代表url所要傳送的參數,當有多組參數時,則會有 $1、$2、$3…等。
<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.
RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>
<system.web>
<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.
RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>
</system.web>
<rewriter>
<rewrite url="~/(w+)" to="~/default.aspx?ID=$1"/>
</rewriter>
</configuration>
Step3
新增一個Default.aspx,再將下列語法copy到 Default.aspx.cs 的 Page_Load(object sende….)中。
if (string.IsNullOrEmpty(Request["ID"]) == false)
{
string msg = string.Format("uID: {0}", Request["ID"]);
Response.Write(msg);
}
[範例下載]