我正在阅读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.config
,conf
和conf/Catalina/localhost
中(即使它是我创建的my-app/WEB-INF
的静态Web应用程序)
Tomcat文档说必须将其放置在WEB-INF
中
https://tomcat.apache.org/tomcat-9.0-doc/rewrite.html
但是没有讨论如何在静态Web应用程序中使用它。
这些都不起作用,我仍然得到Tomcat 404页面,而不是重定向