Reglas .htaccess para Angular
Actualmente estoy trabajando para Shure en Chicago. Estoy muy contento de pertenecer a esta empresa con una historia de casi 100 años. Mi puesto es el de Senior Full-Stack Developer y ahora mismo ando liado con un proyecto realizado con Angular 6 y eXist-db. No tenía mucha experiencia con Angular y la verdad es que por ahora estoy bastante contento.
Mi sorpresa llegó cuando me dí cuenta de que la versión compilada no gestiona la reescritura de URLs, obviamente con una simple configuración de las reglas en el fichero .htaccess solventará este pequeño problema. Os dejo el contenido de mi fichero htaccess por si lo encontráis útil para vuestros proyectos con Angular.
# REDIRECCION A BASE DEL DOMINIO - http://midominio.com/index.html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) index.html [NC,L]
# FIN DE REDIRECCION A BASE DEL DOMINIO - http://midominio.com/index.html
# REDIRECCION A DIRECTORIO - http://midominio.com/micarpeta/index.html
#
# RewriteEngine on
# RewriteCond %{REQUEST_FILENAME} -s [OR]
# RewriteCond %{REQUEST_FILENAME} -l [OR]
# RewriteCond %{REQUEST_FILENAME} -d
# RewriteRule ^.*$ - [NC,L]
# RewriteRule ^(.*) /micarpeta/index.html [NC,L]
#
# FIN DE REDIRECCION A DIRECTORIO - http://midominio.com/micarpeta/index.html
# DESHABILITAR CACHE DEL NAVEGADOR (SOLO PARA SITIOS EN PRODUCCION)
#<filesmatch "\.(html|htm|js|json|css)$">;
#
# FileETag None
# Header unset ETag
# Header unset Pragma
# Header unset Cache-Control
# Header unset Last-Modified
# Header set Pragma "no-cache"
# Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
# Header set Expires "Mon, 10 Apr 1972 00:00:00 GMT"
#
#</filesmatch>
# FIN DE DESHABILITAR CACHE DEL NAVEGADOR (SOLO PARA SITIOS EN PRODUCCION)
donde la coloco es fichero
Hola, tienes que colocar el fichero .htaccess en la carpeta dónde se encuentra el index.html que tu aplicación Angular ha creado.