【发布时间】:2012-02-01 10:35:07
【问题描述】:
Spring MVC (3.0) 将带有和不带有斜杠的 URL 视为相同的 URL。
例如:
http://www.example.org/data/something = http://www.example.org/data/something/
我需要用尾部斜杠重定向 URL
到没有它的 URL:
我需要在应用程序内部执行此操作(因此不要通过 Apache 等重写规则)。
一种方法是:
@ResponseStatus(value=HttpStatus.MOVED_PERMANENTLY)
@RequestMapping(value = "/data/something/")
public String dataSomethingRedirect(...) {
return "redirect:/data/something";
}
但这通常有两个问题:
- 控制器过多
- 参数问题:比如错误编码
问题
有没有办法拦截所有的 URL,如果它们有斜杠,将它们重定向到不带斜杠的相对 URL?
【问题讨论】:
-
如果一个总是重定向到另一个,它们不是同样等价的吗?实现这一目标所涉及的努力可能很高。如果您的担心完全是表面上的,那根本不值得。
-
在相对 url 链接方面它们并不等价
标签: java spring spring-mvc redirect model-view-controller