私は現在、それを指し示す2つのドメイン(例えば、www.domainA.comとwww.domainB.com)を持つASP .NET MVCサイトを持っています。 www.domainB.comを訪問してもwww.domainA.comを使用するようにすべてのリンクを変更したいと思います。ASP.NET MVCサイトで単一のドメインを使用する方法
私のすべての私のURLは、組み込みのUrl.ActionメソッドとHtml.ActionLinkメソッドで生成されています。
私はprevious questionの指示に従っていますが、それはうまく動作しません。ここで
私のカスタムルートさ:
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;
}
}
は、ここに私のカスタムルートハンドラさ:
class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new MvcHandler(requestContext);
}
}
ここでは私のRegisterRoutes方法である:
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
);
}
ルートが動作しています(つまり、私のサイトをクラッシュさせない)が、実行すると、私の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 –