我已将我的一个网站的 URL 样式更改为 RESTful:
**Old URLs** **New URLs**
/article/all.ab /articles
/article/read.ab?id=345 /articles/345/title-of-my-article
在搜索引擎使用新网址重新索引我的网站之前,人们将继续在搜索引擎上看到旧网址。如果他们使用旧网址访问我的网站,他们将收到 404。
我想创建一个机制(通过编写 Controller 、错误处理程序或其他任何东西):
- 捕获未找到映射的请求
- 检查是否有为此请求路径映射的新 URL。
- 如果找到新网址,则重定向到该网址。
- 否则显示“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/