我一直试图解决这个问题几天但没有成功。 案例是我已经将一个旧的Web表单站点重写为mvc 3,并且有一堆旧的url:s需要重定向到新的url:s
这就是global.asax中的2条路由应该捕获对旧url的所有请求:s
routes.MapRoute(
"legacyevents",
"events/{*slug}",
new { controller = "Redirect", action = "RedirectLegacyRoute" },
new[] { "Web.Controllers" }
);
routes.MapRoute(
"legacyarticles",
"articles/{*slug}",
new { controller = "Redirect", action = "RedirectLegacyRoute" },
new[] { "Web.Controllers" }
);
现在奇怪的是,当请求看起来像这样
events/randomevent__12.aspx
一切运作良好,但如果事件中的E是大写事件/ randomevent__12.aspx asp.net在某个地方为url添加了另一个事件字,所以当它点击RedirectController时它看起来像这样
events/events/randomevent__12.aspx
由于缺乏关于搜索引擎优化的知识,当我写几年前的网页表单应用程序很多旧网址的传入链接有混合套管:(所以我真的要解决这个问题
应该处理文章的路由按预期工作,并不关心传入请求URL的大小写,这使得这种情况非常奇怪,因为路由指向同一个RedirectController。
任何帮助将不胜感激,如果您需要任何其他信息,我将很乐意提供
最好的问候
//ķ