본문 바로가기
개발언어/ASP.NET

RewritePath

by 엔돌슨 2008. 3. 24.
반응형
url mapping 로는 무언가 부족하다.


http://csharpaspnet.blogspot.com/2007/08/simplify-urls-url-redirect.html



codeproject에 가면 rewritepath에 관한게 나온다.
http://www.codeproject.com/KB/aspnet/urlrewriter.aspx


엉뚱한 페이지를 불렀을때 특정페이지로 rewrite 해주는 거 같다.

URL Rewriting with ASP.NET 관련글이다.





훈스넷에 가면 더 좋은 우리말로 설명하신 분이 있다 ㅎ

http://www.hoons.kr/hoonsboard.aspx?table_name=QAASPNET&board_idx=452959&page=1&keyword=BOARD_CONTENT&search=RewritePath&boardmode=2


RewritePath 를 이용하면, 브라우져 경로를 내부적으로 쿼리스트링으로 대체하여 사용할 수 있습니다.

제 블로그에 사용된 소스 일부를 채취해보았습니다.

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Umc.Core.Modules.Blog;
using Umc.Core.Modules.Article;
using Umc.Core.Modules.Trackback;

namespace Umc.Core.Web
{
 public class UmcHttpModule : IHttpModule
 {
  #region IHttpModule 멤버

  public void Dispose()
  {
 
  }

  public void Init(HttpApplication context)
  {
   context.BeginRequest += new EventHandler(Umc_BeginRequest);
  }

  #endregion

  string[] Command = new string[] {
    "/article_",
    "/tag_",
    "/trackback_"
   };
  private void Umc_BeginRequest(object sender, EventArgs e)
  {
   string url    = "/default.aspx";

   string localPath = HttpContext.Current.Request.Url.LocalPath;

   foreach (string command in Command)
   {
    if (localPath.ToLower().StartsWith( command ))
    {
     ...

     if( filename[1].ToLower() != "aspx" ) return;

     switch (command)
     {
      case "/article_" :
       url = string.Format("/default.aspx?{0}={1}",
       ArticleConst.PARAM_ARTICLENO, filename[0] );
       break;
      case "/tag_" :
       url = string.Format("/default.aspx?{0}={1}",
       ArticleConst.PARAM_TAG, filename[0]);
       break;
      case "/trackback_" :
       url = string.Format("/common/trackback.aspx?{0}={1}",
        TrackbackConst.PARAM_TRACKBACK, filename[0] );
       break;
     }

     HttpContext.Current.RewritePath(url);
    }
   }
  }
 }
}

http://umc.pe.kr/tag_UmcBlog.aspx

여기에 가시면 블로그 소스 통채로 받아 보실 수 있습니다.