2008-08-18 6 views
14

저는 ASP.Net 및 IIS에 대한 여러 URL 재 작성자를 살펴본 결과 다른 모든 사람들이 사용하는 이유와 그 이유에 대해 궁금해했습니다.ASP.Net에 사용할 URL 재 작성자는 무엇입니까?

  • ThunderMain URLRewriter : 여기

    내가 사용 또는 보았다 한 사람입니다 이전 프로젝트에 사용, 아주 우리는
  • Ewal UrlMapper 찾고 있던 유연성/성능을 가지고 있지 않았다에 사용 현재 프로젝트가 있지만, 소스는
  • UrlRewritingNet.UrlRewrite을 포기하는 것 같다 괜찮은 라이브러리하지만 것 같아 문서의 빈약 한 문법이 날 느낌 잎 불안
  • UrlRewriter.NET이 내 현재의 즐겨 찾기입니다, 대단한 유연성을 가지고 있지만, 대체 정규 표현식으로 펌핑 된 여분의 함수가 표준을 바꾼다. 닷넷 정규식 구문이 약간
  • Managed Fusion URL Rewriter : 스택 오버 플로우시 previous question에서이 하나를 찾았지만 예제에서 아직 시도하지 않았다. 구문을 사용하면 web.config를 통해 편집 할 수없는 것 같습니다.

답변

3

+1 UrlRewritingNET.URLRewrite - 몇백 개의 서비스/포털/사이트를 단일 상자에서 수년간 사용하지 않고 사용했습니다! (@ Jason - 당신이 말하는 이야기입니다. 맞습니다.)

URLRewriter.NET을 개인 사이트에서 사용해 보았습니다. 흥미 롭습니다. @travis, 당신은 변경된 구문에 대해 옳았습니다. 그러나 익숙해지면 좋았습니다.

+0

문제가 있습니다. 내가 필요한 것은 다른 사이트로 리디렉션하는 것입니다. 예를 들어 는 : http://example.com/some3rdparty 그냥 작은 URL은 박스에서 할 불가능 에 대한 http://somesite.com/with?alot&of¶meters 에, 소스의 변경이있을 필요가있다. 그래서 ManagedFusion을 사용했습니다. – AlfeG

+0

하드 코딩 된 섹션 이름 "urlrewritingnet"은 큰 놀라움이었습니다. T_T – AlfeG

+0

불가능하지 않습니다. 헌신과 정의가 필요합니다. 나는 다음과 같은 이야기를하고 있다고 생각하겠습니까? <추가 virtualUrl = "^ ~/some3rdparty"rewriteUrlParameter = "ExcludeFromClientQueryString"DESTINATIONURL = "somesite.com/with?alot=$2 = $ 3 & 매개 변수의 & = $ 4 $ 5"하여 ignoreCase = "진정한"/> 하거나 destinationUrl = "somesite.com/withalal &/& 매개 변수"? 물론, 학습 곡선이 있지만,이 제품은 제가 사용했던보다 포괄적 인 제품 중 하나입니다. 라우팅 및 MVC는 함께 사용하기 위해 만들어졌으며 이러한 유형의 상황에서 사용자를 더 잘 도와주지는 않습니다. –

4

지금 새 웹 프로젝트를 시작한다면 처음부터 MVC를 사용할 것입니다. 재 작성된 URL을 표준으로 사용합니다.

7

.NET 3.5에서 방금 릴리스 된 System.Web.Routing이 있습니다.

당신은 내가 IHttpHandlerFactory 구현을 사용하여 들어오는 모든 URL을 완전히 제어 할 수 있습니다 어디 그들이에 매핑하고 선호하는 사용자 지정 HttpModule을

에 Request.RewritePath()를 사용할 수 있습니다.

2

나는 트래픽이 많은 사이트에서 UrlRewriting.NET을 사용 해왔다. 저는 개발자가 독일어라고 생각합니다. 그래서 영어 문서는 아마도 그렇게 좋지 않을 것입니다. 나는 그것을 매우 추천하고 싶다.

2

Ionic's ISAPI Rewrite Filter은 무료로 제공되는 것을 제외하고는 ISAPI_Rewrite와 매우 유사합니다. 둘 다 mod_rewrite를 모델로하며 ISAPI 필터이므로 IIS에서 설정해야하므로 코드에서 관리 할 수 ​​없습니다.

1

나는 .NET URL Rewriter and Reverse Proxy을 대단원으로 사용했습니다. 거의 mod_rewrite와 동등하며 거의 동일한 구문을 사용합니다. 프로젝트 소유자는 매우 도움이되고 친절하며 제품은 훌륭하게 작동합니다. 이 보석은 많은 솔루션에서 제공하지 않는 Rewriting 및 Proxy 기능을 모두 제공합니다. IMO, 한번보세요.

3

IIS 7에는 상당히 유용한 IIS와 잘 통합되는 URL Rewrite Module이 있습니다.

+0

새로운 스쿨 인 +1! 이것이 내가 사용하는 것입니다. Request.Url은 이제 요청한 페이지가 아닌 실제 페이지이므로 UrlRewritingNet.Rewrite에 익숙하다면 조심하십시오. 이제 실제로 요청한 URL을 얻으려면 Request.RawUrl이 필요합니다. – BritishDeveloper

2

IIS7 Windows 2008 환경에있는 경우 UrlRewritingNet을 사용하지 않는 것이 좋습니다.

이유 : UrlRewritingNet을 사용하려면 풀 모드 = 클래식이고 통합되지 않아야합니다. 이것은 최적이 아닙니다 또한 프로젝트는 지난 2 년 동안 매우 죽은 것 같습니다.

+0

Windows 2008 R2에서는 UrlRewritingNet.UrlRewrite를 사용하여 통합 풀에서 실행되는 모든 사이트 (50+)에 문제가 없습니다. – balint

0

+1 또한 UrlRewritingNet.UrlRewrite에 대해 +1하지만 .aspx로 항상 내 URL을 끝내야하는 이유는 무엇입니까? 정규 표현식을 개선해야한다고 생각합니다.

가상 호스트 localhost/Products/Beverages.aspx ","localhost/Products/Condiments.aspx "에서 항상 aspx로 끝내야하는 이유 localhost/Products/Beverages", "localhost/Products/조미료 "는 MVC 경로처럼 보입니다.

This 하나는 좋아 보이지만 내 사이트에서는 작동하지 않습니다. 나는 아직도 그것을 이해할 수 없다.

+0

'.aspx'로 끝납니다. IIS의 제한 사항 그렇지 않으면 aspnet_isapi.dll을 사용하기 위해'. * '를 매핑해야합니다. 많은 호스팅 제공 업체는이를 허용하지 않으며 PNG가 잘못된 MIME 형식으로 제공되는 것과 같이 성능이 떨어지거나 다른 이상한 단점이 발생할 수 있습니다. – travis

0

asp.net 라우팅은 URL 재 작성 및 훨씬 더 많은 요구 사항을 충족시킵니다. asp.net 라우팅을 사용하면 "url"을 다시 작성할 수 없으며 다양한 요청에 대한 사용자 정의 핸들러를 만들 수 있습니다. 그러나asp.net 라우팅 적어도 asp.net sp1이 필요합니다.

간단한 라우팅이 작동하도록하는 기본적인 작업은 Global.asax.cs 파일 내부의 Application_Start에도 몇 가지 경로 처리기를 추가하는 것입니다.

protected void Application_Start(object sender, EventArgs e) 
     { 

         RegisterRoutes(RouteTable.Routes); 


     } 
     private static void RegisterRoutes(RouteCollection routes) 
     {   

      routes.Add("Routing1", new Route("/Blog/id/2","/Blog.aspx")); 

     }