短網址實作一

摘要:短網址實作一

<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();