Silex-Skeleton. Configuración servidor Apache

Hola buenas.

Mi duda es sobre la configuración de Silex cuando se usan varios controladores frontales.

Acabo de comenzar con el Silex-skeleton de Fabien y no se cómo configurar el servidor para usar index.php y index-dev.php de forma correcta.

Si dejo mi archivo .htaccess vacío tengo que incluir en la URL el controlador frontal que quiero usar, tal como http://www.miurl/index.php/ruta o http://www.miurl/index-dev.php/ruta.

Si mi .htaccess es:

<IfModule mod_rewrite.c>
    Options -MultiViews
 
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]
</IfModule>

Ya no tengo que incluir el controlador index.php pero ya no puedo usar index_dev.php.

¿Cuál es la configuración del archivo .htaccess correcta?

Respuestas

#1

@Yercapa, el archivo .htaccess correcto es el que proporciona el propio Silex-Skeleton. El problema es que Fabien decidió hace unas semanas eliminarlo. Los motivos son que el ya no utiliza Apache y que es bastante difícil proporcionar un .htaccess que funcione bien para todo el mundo.

Por si te sirve de referencia, el archivo .htaccess que daban antes de borrarlo era el siguiente:

<IfModule mod_rewrite.c>
    RewriteEngine On
 
    #<IfModule mod_vhost_alias.c>
    #    RewriteBase /
    #</IfModule>
 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

Por si te sirve de ayuda, también te copio una parte del archivo httpd.conf que utilizo yo mismo para librosweb.es, que también está creado con el proyecto Silex-Skeleton. Si puedes, es mejor configurarlo todo en httpd.conf en vez de mediante archivos .htaccess, ya que estos últimos penalizan bastante el rendimiento del servidor:

<VirtualHost *:80>
    # ...
 
    DocumentRoot    .../librosweb.es/web
    DirectoryIndex  index.php
 
    <Directory ".../librosweb.es/web">
        AllowOverride None
        Allow from All
 
        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
        </IfModule>
    </Directory>
</VirtualHost>
#2

Ok, funciona perfecto muchas gracias. Parece que también va con:

FallbackResource /index.php

Aunque me quedo con:

<IfModule mod_rewrite.c>
    RewriteEngine On
 
    #<IfModule mod_vhost_alias.c>
    #    RewriteBase /
    #</IfModule>
 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>