Asp.net mvc 我可以用MVC3将www.abc.com/a b c/test.html重定向到www.abc.com/a-b-c/test.html吗

Asp.net mvc 我可以用MVC3将www.abc.com/a b c/test.html重定向到www.abc.com/a-b-c/test.html吗,asp.net-mvc,iis-7,Asp.net Mvc,Iis 7,我正在改变我的网站上显示链接的方式。我从允许在URL中使用空格改为一种新的格式,在这种格式中,URL在以前使用空格的地方有破折号 这只在URL的中间产生一个字符串。 谷歌已经用URL中的旧空格为我的许多页面编制了索引,但现在它们显示为404。我是否可以在适当的位置(临时)放置一些代码,将带有空格的URL重定向到带有破折号的URL。我想是403重定向。永久性重定向 谢谢,为什么不尝试将路由配置为同时支持传统路由和新路由 基本上,/abc/page和/a-b-c/page应该映射到控制器的相同动作。

我正在改变我的网站上显示链接的方式。我从允许在URL中使用空格改为一种新的格式,在这种格式中,URL在以前使用空格的地方有破折号

<>这只在URL的中间产生一个字符串。 谷歌已经用URL中的旧空格为我的许多页面编制了索引,但现在它们显示为404。我是否可以在适当的位置(临时)放置一些代码,将带有空格的URL重定向到带有破折号的URL。我想是403重定向。永久性重定向


谢谢,

为什么不尝试将路由配置为同时支持传统路由和新路由


基本上,
/abc/page
/a-b-c/page
应该映射到控制器的相同动作。

我们最近没有经历相同的事情。我们最终创建了一个
LegacyController
,它基本上调用了
RedirectToActionPermanent
RedirectToRoutePermanent
。(HTTP 301-永久移动)

理想情况下,我们不能这样做,因为我们需要打电话给数据库,以确定去哪里


如果您的重定向像您说的那样简单(例如URL中没有“动态”信息),那么您应该使用IIS。

仅供参考,您可能需要301或302重定向。301被认为是永久的,而302是临时的。因为我想让谷歌忘记旧路线。我想如果我继续返回一页,它不会忘记。然后还会返回两个看起来相同的页面。我想这可能也是谷歌的一个问题。至于我,要让谷歌忘记smth是很困难的。。像以前一样,更好地支持老年人。所有新路线都将使用新样式的路线