gpt4 book ai didi

spring-boot + tomcat RewriteValve

转载 作者:行者123 更新时间:2023-12-04 02:56:11 28 4
gpt4 key购买 nike

是否可以使用 RewriteValve 以某种方式自定义嵌入式 tomcat ?正如我在 api 中看到的那样目前只有 addContextValves 的方法和 addEngineValves但正如文档中指出的 tomcat,RewriteValve 应该放在 Host 或 webapp 的 context.xml 中。我不明白 addContextValves可以为此工作。

谢谢

最佳答案

对的,这是可能的。这是您需要遵循的两个步骤:

  • 实现您自己的 TomcatEmbeddedServletContainerFactory bean 并设置 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;
    }
  • 将 rewrite.conf 文件添加到您的应用程序的 WEB-INF 目录并指定重写规则。这是一个示例 rewrite.conf 内容,我在 angular 应用程序中使用它来利用 angular 的 PathLocationStrategy (基本上我将所有内容重定向到 index.html 因为我们只使用 spring boot 来提供静态 Web 内容):
      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]
  • 关于spring-boot + tomcat RewriteValve,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39493444/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com