如何在Tomcat中为静态Web应用程序配置rewrite.config

时间:2019-03-15 21:49:16

标签: apache tomcat

我正在阅读Angular文档,该文档讨论有关对Apache HTTP服务器使用url重写的方法

https://angular.io/guide/deployment#server-configuration

它说要创建一个看起来像这样的重写

RewriteEngine On
    # If an existing asset or directory is requested go to it as it is
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    RewriteRule ^ - [L]
    # If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html

我使用的是Tomcat,而不是httpd。我开箱即用的Tomcat 9安装是在my-app目录内名为webapps的目录中提供静态index.html的。它可以很好地服务内容,但是当访问不存在的资源而不是吐回404时,我需要将其重定向到index.html。我创建了rewrite.config,并在{{中设置了以下Valve配置1}}和conf/server.xml只是为了掩盖我的基础,因为我不确定该放在哪里。看起来像这样

conf/context.xml

我尝试将<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" /> 放置在rewrite.configconfconf/Catalina/localhost中(即使它是我创建的my-app/WEB-INF的静态Web应用程序) >

Tomcat文档说必须将其放置在WEB-INFhttps://tomcat.apache.org/tomcat-9.0-doc/rewrite.html

但是没有讨论如何在静态Web应用程序中使用它。

这些都不起作用,我仍然得到Tomcat 404页面,而不是重定向

0 个答案:

没有答案