mvc 二级域名 重定向

使用mvc开发了一个独立的站点(wechat),但是最后要和并到另外一个站点下(admin),但是外部访问要使用另一个站点(admin)的二级域名

考虑之后采用mvc路由机制来实现(这也要考虑),代码实现是这样的,请见下图:

大致的结构就是这样,wechat文件夹下的是原先独立的站点,现在放在admin站点下了。

当时考虑的要用二级域名是基于微信支付方面的考虑。

路由机制如下:

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

            routes.Add("DomainRouteForWeChat", new DomainRoute(
                "wechat.XXXXXXX.net",                             // 固定的二级域名
                "{controller}/{action}/{id}",                  // URL with parameters
                new
                {
                    area = "wechat",
                    controller = "Search",
                    action = "searchbranch",
                    id = "",
                    Namespaces = new string[] { "EJPMS.Web.Admin.Areas.WeChat.Controllers" }
                }  // Parameter defaults 指定的有限访问的controller
            ));

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

        }

html:中的href访问路径,不需要使用决定定位到wechat文件夹下了,因为路由里已经设置了,只需要指定wechat下的controller就行,

<a href="/UserCenter/UserCenter" style="color:#333;">XXXXXX</a>
<a href="/Controller/Action" style="color:#333;">XXXXXX</a>
//你能不能看懂我不知道,反正我是信了。

js:中的onclick也做了同样的配置

window.location.href = "/Search/Branchdetail";
window.location.href = "/Controller/Action";

但是问题来了,这样在线上访问是没有问题了,但是线下调试的时候就会提示路径错误,因为路径中总是少一个wechat

这个问题现在准备使用本地中设置电脑的hosts文件,设置本地域名来实现,但是设置的时候需要注意hosts不能设置端口号这个问题,这个解决方案还没有验证,

我滚去验证了...

原文地址:https://www.cnblogs.com/zhaokunbokeyuan256/p/6427675.html