2

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

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

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

我想创建一种机制(通过编写控制器、错误处理程序或其他),它将:

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

如何才能做到这一点?

4

1 回答 1

4

您可以使用类似此 URL 重写过滤器的重写实用程序在您的调度程序 servlet 处理 URL 之前重写您的 URL。我们在 Web 应用程序中大量使用这种方法来处理用户友好的 URL,这个过滤器很有帮助。它的功能很像 Apache 的 mod_rewrite。

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

于 2011-02-22T13:05:36.033 回答