Silex: htaccess para cargar Landing de en construcción

Hola a todos:

Tengo ya un Silex montado y funcionando perfectamente en un servidor. En el htaccess principal de la raíz tengo puesto:

RewriteBase /public/

Para que se cargue directamente el index.php de public nada más entrar en www.midominio.com. Hasta aquí todo perfecto.

El problema es que el cliente me ha pedido que hasta que la web no esté abierta al público se muestre una pantalla de "Estamos en construcción" cuando se entre en www.midominio.com, pero claro, al mismo tiempo quiero seguir yo probando cosas que voy subiendo a la web para ver si funcionan bien.

Podría hacerlo entrando yo directamente en www.midominio.com/public pero no quiero entrar así porque quiero verlo todo tal y como lo veía antes (sin la carpeta public que será como se verá cuando esté operativa).

Existe en el htaccess alguna manera para indicarle que si entro por:

www.midominio.com me cargue:

RewriteBase /

Y si entro por ejemplo en www.midominio.com/dev me cargue:

RewriteBase /public/

He probado varias combinaciones con rewriteCond y rewriteRule pero no consigo nada.

Muchas gracias por adelantado.

Respuestas

#1

La configuración de rewriteCond y rewriteRule siempre me ha parecido complicada. Por eso en estos casos lo que suelo hacer es lo siguiente: creo un HTML con la página en construcción (por ejemplo: en_construccion.html) y luego tengo el controlador frontal normal (por ejemplo en Silex sería index.php).

Entonces, en la configuración del virtual host de Apache tengo lo siguiente:

<VirtualHost *:80>
    ...
    DirectoryIndex  en_construccion.html index.php
</VirtualHost>

La gente normal entra a midominio.com y Apache les sirve la página en_construccion.html. Tu entras al sitio como midominio.com/index.php (tienes que poner el index.html explícitamente) y ya puedes navegar el sitio normalmente.

Otra ventaja es que cuando abras el sitio al público, sólo tienes que borrar o renombrar el archivo en_construccion.html y los usuarios ya verán el sitio normal.