java-Spring MVC : Redirect requests with old URLs to new URLs

标签 java spring spring-mvc spring-annotations

我已将我的一个网站的 URL 样式更改为 RESTful:

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

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

我想创建一个机制(通过编写 Controller 、错误处理程序或其他任何东西):

  1. 捕获未找到映射的请求
  2. 检查是否有为此请求路径映射的新 URL。
  3. 如果找到新网址,则重定向到该网址。
  4. 否则显示“404 页面未找到”页面。

如何做到这一点?

最佳答案

您可以使用重写实用程序,例如 this URL Rewrite Filter在您的调度程序 servlet 处理您的 URL 之前重写它们。我们在 Web 应用程序中经常使用这种方法来获取用户友好的 URL,并且此过滤器很有帮助。它的功能很像 Apache 的 mod_rewrite。

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

关于java-Spring MVC : Redirect requests with old URLs to new URLs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5078402/

相关文章:

java - 如何使用 pdfbox 2 设置复选框外观流的边框

java - 使用 Spring Batch 一个接一个地链接两个作业的最佳方法

java - 返回带有类型的 spring bean

java - Spring 安全

java - 如何从 ResultSet 对象获取 COUNT?

java - 在 Java for 循环中获取 NullPointerException

java - 有没有办法在 spring mvc3 的 xml 中设置 if/else 条件?

java - 在单元测试 Controller 时模拟 Spring Validator

java - 异常: No Dialect mapping for JDBC type: -9

Java 国家数组