此控制器将没有点的所有内容映射到索引.html。直到我添加一个/
.然后可悲的是它不再匹配。如何编辑请求映射或正则表达式以允许在 url 中使用多个"/"?
@RequestMapping(value = "/{path:[^\.]*}")
public String redirect(@PathVariable("path") String path) {
return "forward:/";
}
但是,一旦添加另一个正斜杠(subdir(,它就不匹配。
/image.jpg
不匹配(好(
/about
匹配(好(
/about/me
不匹配(错误(
在@RequestMapping("/**")
中写入多个"/">
这解决了您为一个 URL提供多个正斜杠的问题
/- 你好/世界/ /
- welcome/wel/com/me
每个测试用例都将通过
我想我回答了我自己的问题。在这里发布是为了其他挣扎的人的利益。
@GetMapping(value = "/**/{regex:[-a-zA-Z0-9]*}")
public String forward404() {
return "forward:/";
}
上面的正则表达式允许任何 url,但最后一部分(最后一个/之后的位(只能是-
、a-z
、A-Z
或0-9
。这意味着.
将被抛出并允许默认控制器为其提供服务。