Foros del Web » Creando para Internet » Diseño web »

mod_rewrite + Mysql

Estas en el tema de mod_rewrite + Mysql en el foro de Diseño web en Foros del Web. Hola a todos, estoy recién comenzando a entender el mod_rewrite y logre hacer algo basico, que seria mas o menos asi: RewriteRule ^([a-zA-Z0-9]+)/$ index.php?item=$1 [L,NC] ...
  #1 (permalink)  
Antiguo 17/01/2013, 14:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta mod_rewrite + Mysql

Hola a todos, estoy recién comenzando a entender el mod_rewrite y logre hacer algo basico, que seria mas o menos asi:

RewriteRule ^([a-zA-Z0-9]+)/$ index.php?item=$1 [L,NC]
Lo que reemplazaría:

www.dominio.com/200

por

www.dominio.com/index.php?item=200

Ahora lo que quisiera hacer es en lugar de poner el numero del id poner el nombre almacenado en MySQL.
O sea si el item 200 en la base de datos tiene en la columna nombre "item de prueba"
poder redirigir www.dominio.com/item_de_prueba/ por www.dominio.com/index.php?item=200

Como se hace esto? desde donde hago la consulta y como la adapto en el htaccess?

Muchas gracias!
  #2 (permalink)  
Antiguo 19/01/2013, 09:14
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: mod_rewrite + Mysql

Tienes que crear un campo en la tabla de tu base de datos para guardar el valor que quieras pasar por URL.

Es decir, igual que tienes guardado el campo ID —o similar— y luego lo llamas por URL, para pasar una cadena de texto tienes que tener guardado en tu base de datos un campo que guarde ese valor. Por ejemplo un campo llamado "clave_url", y le asignas el valor "item_de_prueba" según tu ejemplo.
Luego en vez de mapear hacia index.php?item=200, lo haces a index.php?clave=item_de_prueba.

Básicamente, es hacer lo mismo que ya haces, pero pasando otro dato por URL.
  #3 (permalink)  
Antiguo 21/01/2013, 15:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: mod_rewrite + Mysql

Gracias Bonez, lo que no tengo claro es como hacer que el archivo htaccess lea la tabla de la base de datos.
Tiene que conectar? o no es necesario? podrias darme un ejemplo?

Muchas gracias
  #4 (permalink)  
Antiguo 21/01/2013, 15:43
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: mod_rewrite + Mysql

Quien lee la base de datos sigue siendo el archivo PHP. El archivo .htaccess es un archivo estático.

Es lo mismo que estás haciendo ahora, pero en vez de ID, pasas una cadena de texto (o lo que sea) y esa variable la tienes que tener guardada en un campo de tu base de datos, al igual que haces ahora con ID.

Ahora lo que haces es seleccionar un registro donde ID sea igual a $_GET['item']. Pues es lo mismo, sólo que compararías, por ejemplo, el campo titulo_url con $_GET['clave']. No tiene mayor ciencia.

Cuando guardas lo que sea (noticia, artículo, etc), supongo que guardarás un título. Por ejemplo "Os presento mi blog Supercool". Que iría en el campo de título. Pues en el campo titulo_url guardas otro valor que sea igual al título pero parseado que quede tal que "os-presento-mi-blog-supercool" o lo que quieras. En vez de usar números, usas cualquier cosa.

Etiquetas: htaccess, modrewrite, mysql
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 20:01.