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

发布于 2024-11-19 21:11:59 字数 86 浏览 5 评论 0原文

我有一个处于私人测试版的网站,现在我需要从 beta/* 重定向到 /*。 在 ASP.NET MVC 中如何做到这一点?

谢谢 * = 一切

I have site in private beta, and now I need to redirect from beta/* to /*.
How can be this done in ASP.NET MVC?

Thanks
* = everything

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往昔成烟 2024-11-26 21:11:59

一种方法是设置一个通配符路由,该路由将采用任何带有 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);
}

One way is to setup a wildcard route that will take any route with beta and send it to an action that will then redirect you to the correct url:

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

Then in the Beta controller do the redirect:

public ActionResult Index(string url)
{
   return Redirect("/" + url);
}
一刻暧昧 2024-11-26 21:11:59

让 IIS 为您处理重写可能会更好。应用程序不应该“意识到”它是否处于测试模式。

It's probably better to have the rewriting handled by IIS for you. The application shouldn't be "aware" if it is in beta mode or not.

混吃等死 2024-11-26 21:11:59

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

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

You could do this by defining a new route and using an IRouteHandler to handle the redirect.

See Phil Haack's blog about this: http://haacked.com/archive/2008/12/15/redirect-routes-and-other-fun-with-routing-and-lambdas.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文