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
@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>
@javiereguiluz
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>
@Yercapa