【问题标题】:Tomcat Rewrite Valve is creating a loop in clientappTomcat Rewrite Valve 正在 clientapp 中创建一个循环
【发布时间】:2021-09-28 00:33:22
【问题描述】:

我有一个在 tomcat 中运行历史模式的 Vue SPA。 为了解决 404 路由问题,我已将此代码添加到 tomcat 中的 ~/conf/server.xml 文件中:

 ...
    <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

      <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />

 ...
    </Host>
 ... 

我已将此代码添加到我的 ~/Catalina/localhost/rewrite.config 文件中:(顺便说一句,我在不同的容器中有 6 个 api,我认为它们可能是造成问题的原因?)

 RewriteRule ^/api1/ - [L,NC]
 RewriteRule ^/api2/ - [L,NC]
 RewriteRule ^/api3/ - [L,NC]
 RewriteRule ^/api4/ - [L,NC]
 RewriteRule ^/api5/ - [L,NC]
 RewriteRule ^/api6/ - [L,NC]
 RewriteCond %{REQUEST_PATH} !-f
 RewriteRule ^/(.*) /index.html

我已经重新启动了我的服务器,但我的数组中仍然出现一个无限循环,这些循环是从我的 api 填充的。 如果我删除 rewrite.config,则问题不存在。 但后来我再次收到404错误.. 有什么想法吗?

【问题讨论】:

    标签: vue.js tomcat url-rewriting browser-history server-configuration


    【解决方案1】:

    通过在 rewrite.config 文件中更改为此代码解决了此问题。

       RewriteRule ^/myapi1/.* - [L,NC]
       RewriteRule ^/myapi2/.* - [L,NC]
       RewriteRule ^/myapi3/.* - [L,NC]
       RewriteRule ^/myapi4/.* - [L,NC]
       RewriteRule ^/myapi5/.* - [L,NC]
       RewriteRule ^/host-manager/.* - [L,NC]
       RewriteRule ^/manager/.* - [L,NC]
       RewriteCond %{REQUEST_PATH} !-f
       RewriteRule ^/(.*) /index.html
    

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2015-10-11
      • 2017-03-07
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多