asp.net-mvc - 301 重定向在路由匹配之后但在 Controller 执行之前

标签 asp.net-mvc redirect routing seo

我想在匹配有效路由但当前不以斜杠结尾的任何 url 中添加尾部斜杠,即 www.example.com/url

在 url 与有效路由匹配后,我想 301 重定向到相同的 url,但添加尾部斜杠,即 www.example.com/url/

我花了一些时间研究它,但我似乎无法弄明白。

我相信路由在 PostResolveRequestCache 事件中匹配,但我不知道如何在该事件期间或之后访问路由数据以查看是否匹配了有效路由。如果我可以确认匹配了有效路由,那么我可以检查 url 以确保它以斜杠结尾。

我希望已经足够清楚了,如果您需要更多信息,请告诉我。

最佳答案

我假设您正试图出于 SEO 目的消除重复内容。

Scott Hanselman 说你可以用 IIS7 重写模块来做到这一点(你在运行 IIS7 吗?)他的帖子在 http://www.hanselman.com/blog/ASPNETMVCAndTheNewIIS7RewriteModule.aspx描述了这个过程。

关于asp.net-mvc - 301 重定向在路由匹配之后但在 Controller 执行之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1203218/

相关文章:

php - 根据目录 base-name 返回 PHP 页面,无需重定向

perl - 在 Perl 中如何找到所有重定向后的最终 URL?

ruby-on-rails - 没有id的Rails 3资源路由

asp.net-mvc - Asp.Net MVC 路由 : best way to have a single element in the URL?

css - ASP.NET MVC 5 中心文本框 css

asp.net-mvc - 在 Controller 之间传递 TempData

javascript - 无法在模型列表上使用 for 循环

c# - ASP.NET MVC - 从 Void 或 int 调用 ActionView 的一些方法

ios - 在 Swift 中防止 URLSession 重定向

laravel - 如何在同一位置传递不同的动态参数来访问laravel中的不同 View 页面