I am trying to get jetty and angular 2 to work together. For that I need the server to rewrite all index.html/... urls to index.html My configuration is like this:
Server server = new Server(8080);
HandlerCollection handlerCollection = new HandlerCollection();
RewriteHandler rewrite = new RewriteHandler();
rewrite.setRewriteRequestURI(true);
rewrite.setRewritePathInfo(false);
rewrite.setOriginalPathAttribute("requestedPath");
RewriteRegexRule oldToNew = new RewriteRegexRule();
oldToNew.setRegex("\\/index.html\\/.*");
oldToNew.setReplacement("/index.html");
oldToNew.setTerminating(true);
rewrite.addRule(oldToNew);
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(true);
resourceHandler.setWelcomeFiles(new String[]{"index.html"});
resourceHandler.setResourceBase("./resources");
resourceHandler.setMinMemoryMappedContentLength(-1);
rewrite.setHandler(resourceHandler);
handlerCollection.addHandler(rewrite);
//now I am adding some more Contexthandlers to the handler collection
ContextHandler contextHandler = new ContextHandler("/service/test");
contextHandler.setHandler(jsonHandler);
handlers.addHandler(contextHandler);
//...
handlerCollection.addHandler(new DefaultHandler());
server.setHandler(handlerCollection);
try {
server.start();
server.join();
} catch (Exception e) {
LOGGER.error("Problem starting server", e);
}
The result is: 1: I can open http://localhost:8080/index.html like expected 2: If i try to open http://localhost:8080/index.html/test jetty says: "Problem accessing /index.html. Reason: Not Found"