2016-09-14 12 views
2

RewriteValveで埋め込みのtomcatをカスタマイズすることはできますか? apiにあるように、現在のところaddContextValvesaddEngineValvesのメソッドしかありませんが、ドキュメント内の指摘されているtomcatとして、RewriteValveをHostまたはwebappのcontext.xmlに配置する必要があります。私はaddContextValvesがこれのために働くことができるかどうかわかりません。spring-boot + tomcat RewriteValve

ありがとうございました

答えて

1

はい、可能です。独自のTomcatEmbeddedServletContainerFactory Beanを実装

  1. とRewriteValve

    import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; 
        ... 
        import org.apache.catalina.valves.rewrite.RewriteValve; 
        ... 
    
        @Bean TomcatEmbeddedServletContainerFactory servletContainerFactory() { 
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); 
        factory.setPort(8080); 
        factory.addContextValves(new RewriteValve()); 
        return factory; 
        } 
    
  2. は、アプリケーションのWEB-INFディレクトリにrewrite.confファイルを追加設定し、これらはあなたが従う必要がある2つの手順です書き換えルールを指定します。ここでは、私がangleアプリケーションのPathLocationStrategyを利用するために角度アプリケーションで使用しているrewrite.confコンテンツの例を示します(静的なWebコンテンツを提供するためにSpringブートを使用するので、基本的にはすべてをindex.htmlにリダイレクトします)。

    RewriteCond %{REQUEST_URI} !^.*\.(bmp|css|gif|htc|html?|ico|jpe?g|js|pdf|png|swf|txt|xml|svg|eot|woff|woff2|ttf|map)$ 
        RewriteRule ^(.*)$ /index.html [L] 
    
関連する問題