Я установил приложение angular в папку $ {tomcat_dir} / webapps / ROOT / tomcat9 на Raspberry Pi.
У меня также есть API в java, который установлен в $ { tomcat_dir} / webapps / baby-project-api / папка tomcat.
Связь между ними хорошо работает с RewriteRule.
С другой стороны, если я хочу прийти непосредственно к URL в angular, который возвращает мне 404.
Вот мой файл $ {tomcat_dir} /conf/Catalina/localhost/rewrite.config:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
RewriteCond %{REQUEST_URI} !^/rest/.*$
RewriteRule ^ - [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !^/rest/.*$
RewriteRule ^/*$ /index.html [L]
RewriteRule ^/rest/(.+)$ /baby-project-api/rest/$1
и сервер . xml:
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUser$
</GlobalNamingResources>
<Service name="Catalina">
<Connector executor="tomcatThreadPool" port="8080"
protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" sslEnabledProtocols="TLSv1.3,TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_12$
scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS" keyAlias="tomcat"
keystoreFile="/opt/tomcat/keys/bb.lhoir.me.jks" keystorePass="${strong_password}"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
К вашему сведению, маршруты в angular:
const appRoutes: Routes = [
{ path: 'welcome', component: WelcomeComponent },
{ path: '', component: WelcomeComponent },
{ path: 'cgu', component: CguComponent},
{ path: 'gender', component: FormGenderComponent},
{ path: 'gender/:choice', component: FormGenderComponent},
{ path: 'auth', component: AuthComponent},
{ path: 'parents/dbgender', component: DBGenderComponent},
{ path: 'not-found', component: FourOhFourComponent },
{ path: '**', redirectTo: 'not-found' }
];
Я посмотрел много похожих предметов, но невозможно go, например, на https://url.com/cgu без перехода по ссылке на моих страницах.