2013-07-24 2 views
0

MVC 3 응용 프로그램의 하위 도메인과 관련하여 좌절감을주는 복잡한 문제가 있습니다. 아래 코드를 사용하면 내 하위 도메인에서 매번 내 도메인의 루트로 되돌아갑니다. 내가 subdomain.mydomain.com 그 경로를 입력하면하위 도메인 MVC 3의 루트로 리디렉션

나 domain.com?nr=0합니다. 왜 코드에서 어디에서 쿼리 문자열 값을 추가하는지 알 수 없습니다.

public class SubdomainRoute : RouteBase 
    { 
     public override RouteData GetRouteData(HttpContextBase httpContext) 
     { 
      var url = httpContext.Request.Headers["HOST"]; 
      var index = url.IndexOf("."); 

      if (index < 0) 
       return null; 

      var subDomain = url.Substring(0, index); 

      if (!String.IsNullOrEmpty(subDomain) && subDomain != "www" && subDomain != "mydomain") 
      { 
       var routeData = new RouteData(this, new MvcRouteHandler()); 
       routeData.Values.Add("controller", "External"); 
       routeData.Values.Add("action", "CoolAction"); 
       routeData.Values.Add("subdomain", subDomain); 

       return routeData; 
      } 
      else 
       return null; 
     } 
} 

양식 인증이 사용 중지되었지만 해결되지 않았습니다. 나는 또한 www를 앞에 쓴다. 모든 요청에, www. 누락되었습니다 - 나는 또한 그것을 제거하고 그것을 해결하지 못했습니다. 다음은 내 Global.asax에의 RegisterRoutes입니다 :이 하루 종일 내 머리를 두드리는 봤는데 난 포기

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("elmah.axd"); 

     routes.Add(null, new SubdomainRoute()); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
      new[] { "MyProject.UI.Web.Controllers" } 
     ); 
     routes.MapRoute("NotesController", 
         "Notes/{noteDestinationType}/{noteDestinationGuid}", 
         new { controller = "Notes", action = "SaveNote" }); 
    } 

. 나는 도움을 요청하고있다. TIA.

답변

0

난 당신이 내가이 시도 See more

  var url = httpContext.Request.RawUrl; 
      Regex regex = new Regex("/"); 
      string[] substrings = regex.Split(url); 
      var index = host.IndexOf("."); 
      var subDomain = host.Substring(0, index); 
+0

regex.Split(url); 누락 생각하지만, 여전히 루트로 리디렉션합니다. –

관련 문제