java - Tomcat 8 URL Rewrite
rewrite url tomcat (3)
¿Está implementado como una aplicación web java (WAR)? Puede implementar esto en su web.xml:
<servlet>
<servlet-name>index</servlet-name>
<jsp-file>/index.html</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/</url-pattern>
<url-pattern>/about</url-pattern>
.. as many as you need ..
<servlet-mapping>
Tengo una aplicación web AngularJS y backend de Jersey. Necesito configurar la reescritura de URL, por lo que todo, excepto las excepciones, se reescribirá en Angular''s index.html.
P.ej.:
http://my.domain.com/about will be rewritten
http://my.domain.com/photos/photo1.jpg will NOT be rewritten (file photo 1 exists)
http://my.domain.com/rest/myservice will be NOT be rewritten (it is a call to REST service)
Configuré la válvula de reescritura de URL de Tomcat 8 de la siguiente manera:
en conf / server.xml
<Host name="my.domain.com" appBase="webapps/MyDomainServer" unpackWARs="true"
autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
<!-- access logging, aliases,...-->
</Host>
en conf / Catalina / my.domain.com / rewrite.config
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} ^/rest.*
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]
Tomcat ignora mis configuraciones de reescritura, nada se reescribe, no hay error / excepción en el registro. ¿Qué estoy haciendo mal? Gracias por adelantado.
He intentado mover RewriteValve a config.xml en META-INF y volver a escribir config para WEB-INF, pero se comportó de la misma manera.
Encontré la solución, el problema estaba en el archivo rewrite.config incorrecto / defectuoso. Correcto debería ser:
RewriteCond %{REQUEST_URI} ^/(css|img|js|partials|rest|favicon).*$
RewriteRule ^.*$ - [L]
RewriteRule ^.*$ /index.html [L,QSA]
En la primera línea se enumeran los URI que no deben reescribirse. Todo lo demás se reescribirá en index.html.
No pude conseguir que esto funcione con REQUEST_URI, y no me gustó tener que incluir en la lista blanca archivos específicos de todos modos, así que lo resolví de una manera ligeramente diferente .