2011-04-12 4 views
0

는 내 ASP.NET 웹 응용 프로그램에 UrlRewriter.net를 사용하여 일부 재 작성 규칙을 추가하려합니다. 문제는 내가 Regex 초보자이고, provided examples은 꽤 초보 다.UrlRewriter.net 독점 정규식 규칙

내 질문은 : 어떻게 쿼리 매개 변수를 GET가 포함 된 URL을 구별합니까? 나는이 규칙을 추가하는 경우

즉, :

<rewrite url="~/([.+])" to="~/$1.aspx" /> 

www.example.com/products.aspx-www.example.com/products를 다시 작성하지만, 그것은 또한 www.example.com/products?id=1.aspxwww.example.com/products?id=1를 다시 작성합니다. 로그인 컨트롤을 사용하여 때 www.example.com/login?returnUrl=/members 유사한 URL을 작성하기

문제는 사실 만 발생, 나는 그것을 다시 작성하는 방법을 잘 모르겠습니다.

내가하고 싶은 것은 :

  • www.ex.com/test?page=dummy -

고마워 재 작성 www.ex.com/test.aspxwww.ex.com/test

  • 를 다시 작성!

    [편집] 그리고 btw 나는 UrlRewriter에 대한 콘솔 디버깅을 켜는 방법을 아직 생각하지 못했습니다. 구성 파일에 "레지스터 로거"섹션을 추가했지만 VS 출력 창에는 아무 것도 표시되지 않습니다. 도움이 될 것입니다.

  • 답변

    0

    은 경기를보기 위해 다음과 같은 정규식을 사용

    "~/([^\?]+)(.*)?"

    이 방법 당신은까지 모든 에게 물음표를 일치 - 물음표되지 않은 하나 개 이상의 문자를.

    그러면 $ 1에 경로 부분이 저장되고 $ 2에는 "?" URL의 끝까지

    두 번째 그룹 괄호 뒤에 물음표가 표시됩니다. 즉, 해당 부분이 필요하지 않음을 의미하므로 www.ex.com/test도 작동합니다.

    +0

    이 문제는 내 질문에 해결했지만 GlobalControl_EndRequest 핸들러에서 다시 작성해야했다. 왜냐하면 로그인 컨트롤은 재 작성된 URL을 보았 기 때문에 링크가 웹 폼 POST 중에 엉망이되었다. – regexnewb