Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

.htaccess en MVC

Estas en el tema de .htaccess en MVC en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy montando mi propio modelo de MVC y tengo un problema con el .htaccess que redirige todas las peticiones al index.php. Mi problema lo ...
  #1 (permalink)  
Antiguo 02/11/2007, 05:24
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
.htaccess en MVC

Hola, estoy montando mi propio modelo de MVC y tengo un problema con el .htaccess que redirige todas las peticiones al index.php.
Mi problema lo detecté cuando vi que no me detectaba los scripts de javascript.
Código:
<script type="text/javascript" src="inc/lib/forms.js"></script>
Después de ver un ejemplo en este foro, el .htaccess está así:
Código:
php_flag display_errors on
php_flag option -indexes

Options +FollowSymLinks

IndexIgnore */*

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
En teoría, debería redirigir todas las peticionas a index.php excepto aquellas que acaben en esas extensiones, no?
  #2 (permalink)  
Antiguo 02/11/2007, 06:24
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: .htaccess en MVC

Al parecer te falto el {REQUEST_FILENAME} antes de la regla, te dejo el mio.
Código:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !\.(js|ico|gif|jpg|jpeg|png|css|swf|xml|txt)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php
  #3 (permalink)  
Antiguo 02/11/2007, 06:50
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: .htaccess en MVC

Hola,

CodeIgniter y CakePHP usan el siguiente .htaccess:
Código:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
El punto siendo que las líneas donde se especifican las posibles extensiones a omitir no son necesarias porque si, por ejemplo, queremos excluir nuestras imagenes JPG, ya lo estamos haciendo con la condición:
Código:
    RewriteCond %{REQUEST_FILENAME} !-f
que se puede leer como "Si se hace una solicitud (request) a un un archivo y NO existe, entonces ejecuta el rewrite". Por ejemplo si mandamos llamar a /imagenes/background.jpg, no se va a realizar el rewrite y por lo tanto se mostrará la imagen.

¿Qué opinan?


Saludos.
  #4 (permalink)  
Antiguo 02/11/2007, 07:05
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: .htaccess en MVC

Cita:
Iniciado por k4k4 Ver Mensaje
El punto siendo que las líneas donde se especifican las posibles extensiones a omitir no son necesarias.
Sí, tiene sentido lo que dices. Yo no entendía muy bien las reglas del .htaccess por eso lo probé así.

De todos modos, si pongo el .htaccess así sigue sin reconocerme las funciones javascript.
Código:
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.*$ index.php
¿Alguna idea?
  #5 (permalink)  
Antiguo 02/11/2007, 07:55
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: .htaccess en MVC

He dado con una posible solución.

He instanciado el tag <base> debidamente y 'por arte de magia' las funciones javascript han vuelto a funcionar.

De todos modos, y pensando en la explicación del .htaccess que daba k4k4, para tener un control total de las peticiones a nuestra aplicación, no sería bueno que todas las peticiones pasaran por un mismo punto (el index.php, por ejemplo) ?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:06.