【发布时间】:2011-01-24 20:56:23
【问题描述】:
我有一个取代旧版的 .Net MVC 1 网站。谷歌的索引中仍然有一堆旧 URL,我需要 301 重定向它们。所有旧 URL 都是 .html 或 .php 页面,我还有一个旧 url 及其新等价物的 db 表。我知道我需要做什么,我只是不确定如何去做!这是我的想法
- 在 global.asax 的某处捕获使用正则表达式请求的 url
- 做一个数据库查找,希望能找到新的 url
- 如果我们找到了新的 url 然后 301 重定向它。如果不是 301 到主页或抛出 404
我尝试在自己周围进行黑客攻击,但运气不佳,而且我可以在网上找到的所有示例都没有真正涵盖这个示例。真的很想通过代码来做到这一点,而不是向 global.asax 添加大约 80 条单独的路由
非常感谢任何帮助或链接
【问题讨论】:
-
我的一个网站遇到了同样的问题。我通过使用 2 个路由将所有 .php 和 .html 请求捕获到一个 RedirectController 中来做到这一点。在重定向控制器中,我通过从数据库中获取旧请求的 url 来匹配 URL,并从那里执行 301 重定向到新的。但是,如果您的新 URL 仍然具有 .php 和 .html 扩展名,对您来说可能会有所不同
标签: asp.net-mvc http-status-code-301 global-asax