永久重定向不起作用

Posted

技术标签:

【中文标题】永久重定向不起作用【英文标题】:Permanent redirection not working 【发布时间】:2015-09-07 23:57:37 【问题描述】:

花了很多时间想知道为什么在 MVC 中进行永久重定向如此困难,我偶然发现了这个页面 http://www.eworldui.net/blog/post/2008/04/ASPNET-MVC---Legacy-Url-Routing.aspx,它看起来相当简单。

我下载了示例代码,将所有帮助类复制到一个新的 MVC 项目中,并将以下内容添加到 RouteConfig.RegisterRoutes() 方法中...

routes.Add("Jim1", new LegacyRoute("Default.aspx", "Home", new LegacyRouteHandler()));

这个想法是将 /Default.aspx 的请求映射到 /Home 。但是,这只会在浏览器中给出 404。调试时,它会在抛出“Invalid Url”异常的行上的 LegacyHandler.ProcessRequest() 方法中断。

有没有人用过这个代码可以提供建议?或者,有没有人有一个简单的解决方案?我有一个已转换为 MVC 的旧 ASP.NET WebForms 站点,并且想要设置重定向。我不敢相信这有多么困难。

有人有什么想法吗?

【问题讨论】:

【参考方案1】:

如果它对任何人有帮助,我进行了更多搜索,并找到了一个相当简单的解决方案。

如果您查看this blog post,您会发现一种相当简单的方法,需要您在解决方案中添加一些类。我创建了一个新的类库,并将它们添加到那里。然后我从我的 MVC 项目中引用了它,并在我的 RegisterRoutes() 方法中添加了如下行...

routes.MapLegacyRoute(null, "Default.aspx", new controller = "Home", action = "Index");
routes.MapLegacyRoute(null, "About.aspx", new controller = "Home", action = "About");
routes.MapLegacyRoute(null, "Contact.aspx", new controller = "Home", action = "Contact");

工作就像一种享受!

希望这对某人有所帮助。如果我早点找到它,我会节省几个小时!

【讨论】:

以上是关于永久重定向不起作用的主要内容,如果未能解决你的问题,请参考以下文章

htaccess url重定向参数不起作用

http到https重定向使用htaccess在角度6中不起作用

使用 Spring Security 3.0.5 覆盖 ChannelProcessingFilter 不起作用

为啥这个重定向不起作用?

为啥页面重定向在 php 中不起作用

为啥这个 .htaccess 重定向不起作用?