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

¿ Como realizar este mod_rewrite ?

Estas en el tema de ¿ Como realizar este mod_rewrite ? en el foro de Apache en Foros del Web. Hola a todos!! Estoy diseñando una web y tengo una duda con mod_rewrite. La web tiene varias categorias y dentro de cada una existen varias ...
  #1 (permalink)  
Antiguo 13/02/2012, 07:07
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 5 meses
Puntos: 18
¿ Como realizar este mod_rewrite ?

Hola a todos!!

Estoy diseñando una web y tengo una duda con mod_rewrite.

La web tiene varias categorias y dentro de cada una existen varias subcategorias y dentro de dichas subcategorias existen productos.

El tema es que, si mediante el menú desplegable, un usuario elige, por ejemplo, regalos -> para la casa -> mesa en la url salga algo parecido a esto: dominio.com/productos/regalos/para_la_casa/mesa-2

Yo ahora en el htaccess lo tengo así:
RewriteRule ^productos/(.+)-(.+)/(.+)-(.+)/(.+)-(.+)$ productos_detalle.php?id_categoria=$2&id_subcatego ria=$4&id_producto=$6 [NC,L]

Me funciona perfecto pero cada categoria tiene el id al lado (por ejemplo: dominio.com/productos/regalos-2/para_la_casa-4/mesa-2).

- ¿ Existe alguna forma sencilla de quitar el id de la categoria/subcategoria y dejar solo la del producto ?

(Tened en cuenta que el usuario puede añadir/modificar/borrar desde un gestor dichas categorias/subcategorias/productos)
Un saludo!
  #2 (permalink)  
Antiguo 13/02/2012, 13:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: ¿ Como realizar este mod_rewrite ?

Si no pasas los id como parámetros, tu productos.php no los va a recibir
pero si en tu ejemplo, los id para categoría, subcategoria y producto, se corresponden con los nombres, tampoco veo la necesidad de pasarlos, ya que regalos, para_la_casa y mesa son valores contra los que podes efectuar la consulta mySql en el php, y en este si lo queres o necesitas , recuperar el valor de id correspondiente
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 13/02/2012, 14:47
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 5 meses
Puntos: 18
Respuesta: ¿ Como realizar este mod_rewrite ?

Comprendo, aunque.. ¿ no es peligroso realizar una consulta en mysql mediante una cadena y no un id ??, podrian existir cadenas duplicadas, etc.. el id siempre es único
  #4 (permalink)  
Antiguo 13/02/2012, 18:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: ¿ Como realizar este mod_rewrite ?

Tan peligroso una cosa como la otra so no están hechas correctamente las consultas, pero ese es otro tema

Cadenas repetidas?

Por lógica la estructura de tu base de datos debería hacer que al menos las categorías sean unicas (no imagino dos categorías "regalos") y como la comparación es contra los tres campos, no deberías tener problemas)

En definitiva, para recibir el $_GET['id']; tenes que pasarlo en la url de alguna forma, uses o no urls amigables

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 14/02/2012, 02:37
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 5 meses
Puntos: 18
Respuesta: ¿ Como realizar este mod_rewrite ?

ajam.., comprendo..

Un saludo y gracias


Etiquetas: htaccess, php, rewrite, url, usuarios
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 17:34.