我们有一个 MVC 应用程序,可以从两个单独的网站访问。默认网站很好,但是如何将第二个网站设置为在特定控制器中启动?
我们的默认站点是www.mysite.com
,我们想为标题添加第二个 IIS 站点,www.subdomain.mysite.com
以便用户访问www.subdomain.mysite.com/controller
但是我怎样才能告诉 IIS 以www.mysubdomain.mysite.com
特定的控制器操作启动mycontroller
呢?
我们有一个 MVC 应用程序,可以从两个单独的网站访问。默认网站很好,但是如何将第二个网站设置为在特定控制器中启动?
我们的默认站点是www.mysite.com
,我们想为标题添加第二个 IIS 站点,www.subdomain.mysite.com
以便用户访问www.subdomain.mysite.com/controller
但是我怎样才能告诉 IIS 以www.mysubdomain.mysite.com
特定的控制器操作启动mycontroller
呢?
我会考虑配置 URL 重写,以便将请求www.mysubdomain.mysite.com
视为对www.mysubdomain.mysite.com/controller
.
您可以使用Ionics Isapi Rewrite Filter。
Ionic 的 Isapi 重写过滤器,又名 IIRF,是一个小型、免费、易于使用的 URL 重写 ISAPI 过滤器。它结合了良好的价格(免费!)和良好的功能。它快速而强大。它适用于 IIS 6.0 及更高版本。
我最终AppSettings
在 web.config 中添加了一个值,并根据该值调整了应用程序的默认路由。
public static void RegisterRoutes(RouteCollection routes)
{
var defaultController = ConfigurationManager.AppSettings["DefaultController"];
if (string.IsNullOrEmpty(defaultController))
defaultController = "Home";
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = defaultController, action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
...
}
这允许我托管任意数量的 IIS 站点,每个站点都可以从应用程序中的不同控制器开始。