Estoy trabajando en una arquitectura basada en microservicios con Lumen. El entorno local funciona bien, pero el servidor de producción necesita ajustes, porque no puede tener la misma estructura de enlace, y quiero que el código sea el mismo en todos los entornos.
En el entorno local, creé hosts virtuales para cada microservicio, como, por ejemplo, books.xyz y authors.xyz que apuntan a la carpeta /public, por lo que la estructura del enlace NO contiene público. En vivo, está alojado como server .servername.com/books y beta.servername.com/authors. Comencé a desarrollar un panel de administración con lumen ( /admin ), pero el problema es que la estructura del enlace es muy diferente y no funciona en producción. (los activos css/js obtienen 404'd, etc.)
¿Cómo puedo eliminar /public en la URL de producción?
¡No quiero mover todo desde la carpeta pública a la raíz, por razones de seguridad!
Intenté crear un archivo .htaccess en la raíz y lo siguiente, pero ninguno de ellos funcionó:
# <IfModule mod_rewrite.c> # RewriteEngine On # RewriteCond %{REQUEST_URI} !^/books/public/ # RewriteRule ^(.*)$ /public/$1 [L,QSA] # RewriteRule ^game/(.*)$ /books/public/$1 [L,QSA] # </IfModule>o
# <IfModule mod_rewrite.c> # RewriteEngine On # RewriteRule ^(.*)$ books/public/$1 [L] # </IfModule>o
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ ^$1 [N] RewriteCond %{REQUEST_URI} (\.\w+$) [NC] RewriteRule ^(.*)$ books/public/$1 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ server.php