Foros del Web » Administración de Sistemas » Apache »

Expresiones regulares en .htaccess

Estas en el tema de Expresiones regulares en .htaccess en el foro de Apache en Foros del Web. Estoy construyendo un front-controller con PHP; para poder indicarle a PHP qué tiene que devolver en función del request del usuario tengo que indicar en ...
  #1 (permalink)  
Antiguo 30/05/2014, 10:07
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Expresiones regulares en .htaccess

Estoy construyendo un front-controller con PHP; para poder indicarle a PHP qué tiene que devolver en función del request del usuario tengo que indicar en las variables GET una serie de nombres preestablecidos.

Entonces he llegado a la conclusión de que tengo que hacerlo mediante el .htaccess para lograr dos cosas: crear URLs amigables y por otro lado indicar una ruta a mi aplicación para que devuelva algo.

El problema está en dos cosas:

1) Este es mi .htaccess

Código Apache:
Ver original
  1. RewriteEngine On
  2.  
  3. Options Indexes followSymLinks
  4.  
  5. RewriteRule ^(.*)/?(.*)/?$ index.php?class=$1&argumnts=$2

Y lo que ocurre es que cuando solicito a mi servidor local (XAMPP) una ruta como por ejemplo index.php/home/ lo que hace es crear las variables GET de la siguiente manera

Código PHP:
Ver original
  1. string(31) "class=index.php/home/&argumnts="

No encuentro la manera de poder hacer que no asigne a la variable GET class el string index.php/

2) Cuando desde el navegador solicito el directorio donde está el index.php de esta forma

/aqui_document_root/aqui_mifolder/

Sí imprime la barra de navegación, pero desde el momento que además de poner index.php pongo la barra entonces ya no se imprime el div de la barra de navegación que tengo definida en el propio index.php porque va a estar en todas las secciones de la aplicación, solo se imprime el contenido de la barra que es dinámico; pero si en vez de / pongo ?home entonces sí imprime el div de la barra de navegación.

En el index.php tengo lo siguiente para poder ver tanto la barra de navegación como el contenido de la barra de navegación

Código PHP:
Ver original
  1. <div id="header">
  2.                 <?php
  3.                 /*
  4.                  * la cabecera
  5.                  */
  6.                 try{
  7.                     $obj=new ReflectionMethod("\modules\Head", "view");
  8.                     echo $obj->invoke(new \modules\Head);
  9.                 } catch (Exception $ex) {
  10.                     echo $ex;
  11.                 }
  12.                 ?>
  13.             </div>

No entiendo por qué ocurren estas dos cosas.

¿Alguien puede ayudarme?
__________________
Ayúdame a hacerlo por mi mismo.
  #2 (permalink)  
Antiguo 30/05/2014, 13:50
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expresiones regulares en .htaccess

Échale un vistazo a este hilo

Saludos.
  #3 (permalink)  
Antiguo 30/05/2014, 13:54
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Expresiones regulares en .htaccess

1) No sé por qué pones la barra optativa si es necesaria

Código Apache:
Ver original
  1. RewriteRule ^(.*)/(.*)/?$ index.php?class=$1&argumnts=$2 [QSA,L]

Añado la bandera [QSA] para que si la url de entrada tiene parámetros, éstos se añadan a la amigable.

2) Será mejor que lo preguntes en el foro de PHP o el que convenga porque aquí se tratan temas de Apache.

Saludos

Etiquetas: expresiones, htaccess, php, regulares, url, variable
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 08:16.