我在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)[^。] * $}「' –