【发布时间】:2010-11-08 13:55:30
【问题描述】:
我有一个旧的 asp.net 网站,我正在迁移到 asp.net mvc。
我想将现有的 url 永久重定向到 asp.net mvc 控制器。我有这些链接的新位置视图的控制器,我想在现有页面上执行 301 重定向到新视图。
我有两种不同类型的网址:
类型 2 url 是 asp.net mvc 路由处理之前现有 url 重写器模块的结果。
我有现有的重定向代码:
Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", url);
Response.End();
我应该在哪里进行重定向?
我看到两个选项:
Application_BeginRequest - 使用正则表达式解析 url
我喜欢它的地方:
- 我已经在这里检查大写 URL 以重定向到小写 URL
- 我有机会直接处理响应,而无需返回 ActionResult
我不喜欢它的地方:
- 必须将顶部的 URL 类型 #2 映射到新的控制器/视图中,这意味着我需要做一些数据库工作来获取 url 的路径
控制器操作 - 使用路由和控制器进行重定向
我喜欢它的地方:
- 我可以干净地完成我需要的数据库工作
我不喜欢它的地方:
- 控制器需要返回一个视图,我直接操作Response流创建301。
任何建议都会很棒,谢谢。
【问题讨论】:
标签: c# asp.net-mvc url-rewriting