Я читаю здесь документацию Angular, в которой говорится об использовании перезаписи URL для HTTP-сервера Apache
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, где я обслуживаю статический index.html из каталога с именем my-app
внутри каталога webapps
. Он отлично обслуживает контент, но мне нужно перенаправить его на index.html при доступе к ресурсу, который не существует, а не выплевывать обратно 404. Я создал rewrite.config
, и я установил следующую конфигурацию Valve в 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-INF
)
Документы Tomcat говорят, что он должен быть помещен в WEB-INF
https://tomcat.apache.org/tomcat-9.0-doc/rewrite.html
Но не говорим о том, как это сделать для статического веб-приложения.
Ничего из этого не работает, я все равно получаю страницу Tomcat 404 вместо перенаправления