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"이 표시됩니다.
왜 작동하지 않는 사람이 있습니까?
애플리케이션에서이 작업을 수행해야합니까? IIS 7에서 URL을 다시 작성하면됩니다. – Nick
http://www.dotnetexpertguide.com/2011/08/iis-7-redirect-domaincom-to.html –