2012-02-17 5 views
1

현재 두 도메인 (예 : www.domainA.com 및 www.domainB.com)이있는 ASP .NET MVC 사이트가 있습니다. www.domain.com을 방문한 경우에도 www.domain.com을 사용하기 위해 모든 링크를 변경하고 싶습니다.ASP.NET MVC 사이트에서 단일 도메인을 사용하도록 강제하는 방법은 무엇입니까?

내 모든 내 URL은 기본 제공 Url.Action 및 Html.ActionLink 메서드에 의해 생성됩니다.

나는 previous question의 지침을 따라 갔지만 제대로 작동하지는 않습니다.

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Add(new MultipleDomainRoute("{controller}/{action}/{id}", new MyRouteHandler())); 

    routes.MapRoute(
     "Default",            // Route name 
     "{controller}/{action}/{id}",       // URL with parameters 
     new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
    ); 
} 
: 여기

class MyRouteHandler : IRouteHandler 
{ 
    public IHttpHandler GetHttpHandler(RequestContext requestContext) 
    { 
     return new MvcHandler(requestContext); 
    } 
} 

내 RegisterRoutes 방법입니다 : 여기

public class MultipleDomainRoute : System.Web.Routing.Route { public MultipleDomainRoute(string url, IRouteHandler routeHandler) : base(url, routeHandler) { } public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values) { VirtualPathData path = new VirtualPathData(this, "http://www.domainA.com/" + values["controller"] + "/" + values["action"]); return path; } } 

내 사용자 지정 경로 처리기입니다 : 여기

내 사용자 정의 경로입니다

경로가 작동 중입니다 (예 : 내 사이트를 크래시하지 않음)하지만 실행하면 내 URL은 http://localhost ...에 추가됩니다. 예를 들어, "http://localhost:56822/http:/www.domainA.com/Home/Index"이 표시됩니다.

왜 작동하지 않는 사람이 있습니까?

+1

애플리케이션에서이 작업을 수행해야합니까? IIS 7에서 URL을 다시 작성하면됩니다. – Nick

+0

http://www.dotnetexpertguide.com/2011/08/iis-7-redirect-domaincom-to.html –

답변

관련 문제