Problemas de reescritura de URL de Tomcat 8

Tengo la reescritura de tomcat 8 para funcionar, pero parece faltar algo en rewrite.config que está causando que la última condición no se ejecute. Para beneficio de otros, tengo el RewriteValve para trabajar para mi aplicación específica y no globalmente. Lo que funciona para mí se da a continuación.

En el archivo context.xml META-INF de mi aplicación, he incluido la siguiente línea

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

En el WEB-INF de mi aplicación, tengo un archivo rewrite.config que dice las siguientes cosas después de incorporar los comentarios vistos en el otro hilo de reescritura de tomcat 8, con respecto al problema con el uso de {REQUEST_FILENAME} siendo nulo. No he usado REQUEST_FILENAME y mi configuración se ve a continuación.

RewriteCond %{REQUEST_URI} .*\.(css|js|html|png|jpg|jpeg|gif|txt|ico) [OR]
RewriteCond %{REQUEST_URI} ^\/api\/ [OR] 
RewriteRule ^(.*)$ - 

RewriteRule ^(.*)$ /index.html 

Ahora, si el URI es un js, css, etc. o si el URI comienza con / api / i, veo que se está evaluando la regla de reescritura y no se está haciendo ninguna sustitución. es decir, las siguientes URL parecen funcionar bien y no se realiza ninguna sustitución. localhost: 8080 / api / abc / xyz, localhost: 8080 / css / abc.min.css

Pero por alguna razón, la última regla no es ser golpeada en absoluto, incluso cuando el URI tiene una válida para ser golpeada por ella. URL como localhost: 8080 / def / ghi debería haberse redirigido a index.html, pero parece que no se reescribe. No estoy seguro de qué me estoy perdiendo en el rewrite.config que causa este comportamiento. ¡Me podría mudar a una! condición para hacer la reescritura también, pero solo quiero aclarar mi comprensión cuando uso la combinación Mulitple RewriteRule.

Cualquier ayuda es apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta