2012-01-30 3 views
2

IP 주소를 통해 웹 사이트를 방문하는 경우 내 사용자를 다른 URL로 리디렉션하기 위해 라우팅을 사용하려고합니다.MVC 라우팅에서 도메인 이름을 처리하는 방법

또는 가능한 경우 라우팅을 통해 도메인 이름을 처리 할 수 ​​있는지 알려주십시오. 컨트롤러와 액션에 대한 라우팅을 사용할 수 있지만 도메인도 처리 할 수 ​​있습니까?

나는 현재 다음과 같이 그것을 사용하고,하지만 난 도메인을 처리 할 수 ​​없습니다입니다 :

routes.MapRoute(
       "Controller",           
       "Controller/{action}/{id}",       
       new { controller = "Controller", action = "Index", id =  UrlParameter.Optional }); 

답변

3

당신이 IIS 7을 사용하는 경우, 웹 서버 수준에서이를 구현하는 것이 더있을 수 있습니다.

이렇게하면 적절한 상태 코드가 HTTP 헤더의 브라우저에 반환되고 MVC 응용 프로그램은 대부분의 경우 웹 서버의 작업 인 도메인과 호스트 이름에 대해 걱정할 필요없이 자체 라우팅을 처리 할 수 ​​있습니다 .

는 IIS에이를 IIS 콘솔에서 웹 사이트를 열고 URL Rewrite을 선택하려면 다음 단계를 따르십시오

  1. 을 새 규칙을 만들고 와일드 카드에 일치하는 URL을 설정하고 같은 패턴을 입력 IP 주소로 xxx.xxx.xxx.xxx*
  2. {HTTP_HOST}이 사이트의 IP 주소와 동일한 조건을 추가합니다.
  3. 리디렉션 할 "작업 유형"을 설정하고 리디렉션 할 패턴을 입력하십시오. "http://mysite.com {R : 1}"의 도메인 equivilent에 IP 주소 후 모든 것을지도, 그래서 것이다이 경우 xxx.xxx.xxx.xxx/mycontent는

이 접근 방식을 mysite.com/mycontent하는 것입니다 리디렉션 것 하위 디렉토리가 매핑되고 사이트가 검색 엔진 친화적 인 상태로 유지되고 적절한 응답 코드가 생성되도록하십시오. 아래

의 스크린 샷은 규칙이 IIS에서 볼 수있는 방법을 보여줍니다 앱의 범위 내에서이 작업을 수행해야하는 경우

sample of how to set up URL rewrite in IIS7

또는 ASP.NET MVC Routing by Subdomain에이 질문은 유용 할 수 있습니다.

관련 문제