2017-03-22 3 views
1

J'ai une application en cours d'exécution sur un serveur jetty intégré. J'essaye d'ajouter une écriture pour ajouter un RewriteHandler afin de rediriger de la racine de mon application Web (http:///www.example.com) à (http: www.example.com/web). J'ai ajouté le RewriteHandler, mais je suis redirigé vers http://www.example.com/home.html (ou main.html, selon que l'utilisateur s'est connecté ou non).Jetty RewriteHandler et contextHandler

Je veux vraiment être redirigé vers http://www.example.com/web/home.html. Comment dois-je modifier le code ci-dessous, pour que cela se produise:

ServletContextHandler servletHandler = 
      new ServletContextHandler(ServletContextHandler.SESSIONS); 
    ServletHolder jerseyServlet = servletHandler.addServlet(ServletContainer.class, "/*"); 


    String staticPath = StartServer.class.getResource("/resources/www-static/").toExternalForm(); 
    ResourceHandler resourceHandler = new ResourceHandler(); 
    resourceHandler.setBaseResource(Resource.newResource(staticPath)); 
    resourceHandler.setWelcomeFiles(new String[] { "home.html" }); 
    ContextHandler staticHandler = new ContextHandler("/web"); 
    staticHandler.setHandler(resourceHandler); 

    RewriteHandler rewriteHandler = new RewriteHandler(); 
    rewriteHandler.setRewriteRequestURI(true); 
    rewriteHandler.setRewritePathInfo(false); 
    RewritePatternRule redirect = new RewritePatternRule(); 
    redirect.setPattern("^/?$"); 
    redirect.setReplacement("/web"); 
    rewriteHandler.addRule(redirect); 
    rewriteHandler.setHandler(resourceHandler); 

    HandlerList handlers = new HandlerList(); 
    handlers.setHandlers(new Handler[] { servletHandler, staticHandler, rewriteHandler }); 

    jetty.setHandler(handlers); 

Répondre