AngularJS 응용 프로그램에서 html5 모드를 구현 중입니다. 서버에서 나는 기본 URL에 접미사 (그래서 확장자가없는 아닌 정적 자원)없이 모든 것을 전달해야이 각 앱 잘 작동,하지만 지금 사람들은 HAL을 사용하려면각도 HTML5 모드 및 HAL 브라우저
@RequestMapping(value = "/{path:[^\\.]*}")
public String redirect(HttpServletRequest request) {
return "forward:/";
}
브라우저와이 컨트롤러는 https://localhost:8080/api과 같은 일부 브라우저 요청을 전달합니다.
정규식을 수정하여 접미사가없는 모든 항목 (현재와 같이)과/api가없는 모든 항목을 일치시킬 수 있습니까?
이 현재 정규 표현식입니다 : 예를 들어
"/{path:[^\\.]*}"
:
일치하지해야합니다
- 어떤/API를
- 아무것도/
- 아무것도 apianything/filename.extension
- 아무것도
(목록의 마지막 두 점은 현재 정규식 괜찮 니)/filename.extensionanything
그것은 일치해야합니다 : 위에 나열되지
- 모든 것을
시도해보십시오. "/{path:^(?!https? //.*/[^/]+)[^.]*}"' –
하지만 https는 무엇입니까? 그것은 확장없이 모든것과 일치해야하고 api없이 모든 것. 예를 들어 목록을 추가하도록 편집합니다. –
좋아요, "/ {경로 :^(? :(? : * [^ /] /)? api) [^.] * $}"' –