如何将beta / *重定向到/ *?

时间:2011-07-11 17:52:27

标签: asp.net-mvc asp.net-mvc-3 iis iis-7 web-config

我的网站是私有测试版,现在我需要从beta / *重定向到/ *。 怎样才能在ASP.NET MVC中完成?

由于 * =一切

3 个答案:

答案 0 :(得分:2)

一种方法是设置一个通配符路由,该路由将采用任何带有beta的路由并将其发送到一个操作,然后将您重定向到正确的URL:

routes.MapRoute(
                "Beta",  // Route name
                "beta/{*url}", // URL with parameters
                new { controller = "Beta", action = "Index", url= UrlParameter.Optional }
            );

然后在Beta控制器中执行重定向:

public ActionResult Index(string url)
{
   return Redirect("/" + url);
}

答案 1 :(得分:1)

为您重写handled by IIS可能更好。如果应用程序处于测试模式,应该不应该“知道”。

答案 2 :(得分:0)

您可以通过定义新路线并使用IRouteHandler来处理重定向来实现此目的。

请参阅Phil Haack的博客:http://haacked.com/archive/2008/12/15/redirect-routes-and-other-fun-with-routing-and-lambdas.aspx