Ich implementiere den HTML5-Modus in einer AngularJS-Anwendung. In dem Server muss ich alles ohne Suffix weiterleiten (so ohne Verlängerung, keine statische Ressource) an die Basis-URL:Angular HTML5-Modus und HAL-Browser
@RequestMapping(value = "/{path:[^\\.]*}")
public String redirect(HttpServletRequest request) {
return "forward:/";
}
Dies funktioniert gut für die Schräg App, aber jetzt wollen die Menschen die HAL verwenden, Browser und dieser Controller sendet auch einige der Browser-Anfragen, wie https://localhost:8080/api.
Ist es möglich, den regulären Ausdruck zu ändern, um alles ohne ein Suffix (wie es jetzt ist) und alles ohne/api?
Dies ist der aktuelle reguläre Ausdruck:
"/{path:[^\\.]*}"
Zum Beispiel:
Es sollte nicht überein:
- alles/api
- alles/apianything
- alles/Dateiname.extension
- alles/filename.extensionanything
(die letzten beiden Punkte in der Liste mit den aktuellen Regex sind ok)
Es sollte passen:
- alles nicht über aufgeführt
Versuchen Sie '" /{path:^(?!https?/:.*/[^/]+)[^.]*} "' –
Aber warum die https? es sollte alles ohne Erweiterung und alles ohne API zusammenpassen. Ich werde bearbeiten, um eine Liste von Beispielen hinzuzufügen –
Ok, versuche '"/{Pfad:^(?! (?:. * [^ /] /)? Api) [^.] * $} "' –