2010-08-05 4 views
0

한 도메인에서 다른 도메인으로 모든 요청을 이동해야합니다. subdomain.olddomain/url -> subdomain.newdomain/url처럼 URL의 일부를 변경하고 싶습니다. asp.net에서 리디렉션 응용 프로그램을 작성하는 방법은 무엇입니까?

나는이 케이크의 조각이 있는지 확인했고 같은 Application_Begin 요청을 썼다 : 파일이 물리적으로 존재하는 경우

void Application_BeginRequest(object sender, EventArgs e) 
    { 
     string url = Request.Url.ToString().ToLower(); 
     string from = ConfigurationSettings.AppSettings["from"]; 
     if (url.IndexOf(from) >= 0) 
     { 
      url = url.Replace(from, ConfigurationSettings.AppSettings["to"]); 
      Response.Redirect(url); 
     } 
     else 
     { 
      if (url.IndexOf("error.aspx") < 0) 
      { 
       Response.Redirect("Error.aspx?url=" + Server.UrlEncode(url)); 
      } 
     } 
    } 

지금까지, 잊지, BeginRequest은 시작했다.

아이디어, 어떻게하면 이전 페이지의 수백을 만들지 않고 asp.net에서 그런 리디렉션을 만들 수 있습니까?

답변

0

ISAPIRewrite [http://www.isapirewrite.com/]] 같은 도구를 사용하여 IIS 6 또는 IIS7 용 URL 재 작성을 관리하는 것이 좋습니다.

바퀴를 재발견 할 이유가 없습니다 ...

+0

좋아,하지만 당신은 무엇을 다시 쓰고 있니? 모든 미스를 단일 리디렉션 페이지에 매핑해야하는 것처럼 들립니다. 그렇다면이 도구의 이상적인 사용법인지는 확실하지 않습니다. –

+0

"IIS URL 재 작성 2.0을 사용하면 웹 관리자가 강력한 규칙을 만들 수 있습니다."- 이것은 훌륭한 도구이지만 적절한 설정을 찾기 위해 오랜 시간이 걸렸습니다. – st78

1

IIS에서 Check that file exists 옵션을 선택 취소하면 정상적으로 작동하지 않을 것으로 생각됩니다. 이 작업은 IIS 버전에 따라 다릅니다.

+0

이것은 나를위한 길일 것 같습니다. ASP.NET 개발 서버에서는 모든 것이 잘 작동합니다. – st78

+0

문제는 IIS에서 게시물 http://forums.iis.net/t/1114839.aspx에 설명되어있는 확인이 선택되어 있지 않음 :) 그래서 로컬에서는 BeginRequest로 시작합니다. – st78

0

404 오류에서 실행되는 ASPX를 지정할 수 있다고 생각합니다. 해당 페이지는 리디렉션을 수행 할 수 있습니다.

0

DNS 수준에서이 작업을 수행하는 것이 좋습니다. 귀하의 검색 엔진 순위가 영향을받지 않도록 영구적 인 301 리디렉션으로 리디렉션합니다.

+0

이해할 수 있는지 잘 모르겠습니다. 301 리디렉션은 HTTP입니다. DNS는 새 서버를 가리키는 이전 호스트 이름에 대한 별칭을 만드는 것을 의미 할 수 있습니다. –

관련 문제