我在AngularJS应用程序中实现了html5模式。在服务器,我需要没有后缀(所以没有扩展,而不是一个静态的资源)的基本URL转发的一切:Angular html5模式和HAL浏览器
@RequestMapping(value = "/{path:[^\\.]*}")
public String redirect(HttpServletRequest request) {
return "forward:/";
}
这是对角的应用程序工作正常,但现在人们希望使用HAL浏览器和此控制器也转发一些浏览器请求,如https://localhost:8080/api。
是否有可能修改正则表达式以匹配没有后缀的所有内容(因为它是现在)以及没有/ api的所有内容?
这是当前的正则表达式:
"/{path:[^\\.]*}"
例如:
它不应该匹配:
- 什么/ API
- 什么/ apianything
- 什么/ filename.extension
- 什么/ filename.extensionanything
(最后两个列表中的点是确定当前正则表达式)
应该匹配:
- 一切之上
尝试'“/{path:^(?!https?://.*/[^/]+)[^.]*}”' –
但是为什么https?它应该匹配没有扩展名的所有内容,并且不带任何API。我会编辑添加一个例子列表 –
好吧,试试''/ {path:^(?!(?:。* [^ /] /)?api)[^。] * $}“' –