摘要:短網址實作一
<p/>
<p/>
問題:短網址如何導回原始網址?<br/>
答:URL Rewrite,要做到url rewrite有很多種方式,<br/>
本篇使用.NET Framework 4.0提供的 Routing API<br/><p/>
<b>Step1.</b> 新增一個 Global.asax 檔,在第一行加上
<textarea class="c#" name="code">
using System.Web.Routing;
</textarea>
<b>Step 2.</b> 新增 RegisterRoute 方法,並且在 Application_Start 函數中呼叫該方法,將要轉址的「路徑」(route)加入,以便應用程式後續使用。
你可以把參數中的{URLKey}當做是一個變數,當使用者在網址上輸入"http://localhost/z54sHy"時,我們可以透過程式,將這個變數值取出。
void Application_Start(object sender, EventArgs e)
{
// 應用程式啟動時執行的程式碼
RegisterRoutes(RouteTable.Routes);
}
//=======================================
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Home", "", "~/chgShortUrl.aspx");
routes.MapPageRoute("Short", "{URLKey}", "~/chgLongUrl.aspx", true,
new RouteValueDictionary { { "URLKey", "" } },
new RouteValueDictionary { { "URLKey", "^(\\w|\\d){6}$" } });
//路徑名稱,路徑格式及參數名稱,路徑對應到的實體檔案,是否驗證使用者已獲得授權存取實體URL,預設值,條件約束
}
<b>Step 3.</b> 在chgLongUrl.aspx中,透過 RouteData.Values["參數名稱"] 函數,指定要取得的變數名稱。
string URLKey = Page.RouteData.Values["URLKey"].ToString();