我的网站有两个指向相同内容的域名。我们称之为www.domainA.com和www.domainB.com,其中www.domainA.com/Page与www.domainB.com/Page相同。
网站上的每个页面都有许多常见的导航链接(和其他链接),这些链接是使用Url.Action和Html.ActionLink调用的混合构建的。生成的URL基于当前域。由于www.domainA.com是主要域名,因此我希望www.domainB.com生成的任何链接都基于www.domainA.com。
这可以集中完成,而不是我绕过整个网站进行硬编码吗?
谢谢, 艾伦
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以通过拥有从System.Web.Routing.Route
继承的自定义路由对象来解决此问题。
例如:
public class MultipleDomainRoute : System.Web.Routing.Route
{
// ...
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
VirtualPathData path = base.GetVirtualPath(requestContext, values);
if (requestContext.Url.Host == "domain2.com") {
path.VirtualPath = "http://domain1.com" + path.VirtualPath;
}
return path;
}
}
然后在你的global.asax中,你注册你的路线使用:
routes.Add(new MultipleDomainRoute(/* args */));