java - Spring MVC:使用旧URL将请求重定向到新URL

时间:2011-02-22 12:57:59

标签: java spring spring-mvc spring-annotations

我已将其中一个网站的网址格式更改为RESTful:

**Old URLs**                             **New URLs**
/article/all.ab                          /articles
/article/read.ab?id=345                  /articles/345/title-of-my-article

在搜索引擎使用新网址重新索引我的网站之前,人们会继续在搜索引擎上看到旧网址。如果他们使用旧网址访问我的网站,他们将获得404。

我想创建一个机制(通过编写控制器,错误处理程序或其他)来实现:

  1. 捕获未找到映射的请求
  2. 检查是否为此请求路径映射了新的URL。
  3. 如果找到新网址,请重定向到该网址。
  4. 另外显示“404找不到页面”页面。
  5. 如何做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以使用重写实用程序(如this URL Rewrite Filter)在您的调度程序servlet处理之前重写您的URL。我们在Web应用程序中使用这种方法很多用户友好的URL,这个过滤器有很多帮助。它的功能很像Apache的mod_rewrite。

当然,它需要您调整Web应用程序并重新部署它。但是规则集在URL上使用正则表达式匹配非常容易,并且还允许将重定向发送到客户端(如果需要)。