Foros del Web » Programando para Internet » PHP »

URL Amigables 2 - La Venganza

Estas en el tema de URL Amigables 2 - La Venganza en el foro de PHP en Foros del Web. Entiendo que en el archivo .htaccess hago el cambio de algo como esto http://www.misitio.com/proceso.php?id=10&var=280 A algo como esto http://www.misitio.com/categoria_art...to_cuadros.php Consulta Al tener una base de ...
  #1 (permalink)  
Antiguo 02/11/2007, 13:13
Avatar de ASLAN  
Fecha de Ingreso: septiembre-2007
Mensajes: 419
Antigüedad: 16 años, 7 meses
Puntos: 2
URL Amigables 2 - La Venganza

Entiendo que en el archivo .htaccess hago el cambio de algo como esto
http://www.misitio.com/proceso.php?id=10&var=280
A algo como esto
http://www.misitio.com/categoria_art...to_cuadros.php

Consulta
Al tener una base de datos de más de 300 productos, debo escribir más de 300 líneas de código en .htaccess o hay un medio más simple ???

Gracias

ASLAN
__________________
Registros Akáshicos
  #2 (permalink)  
Antiguo 02/11/2007, 14:11
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: URL Amigables 2 - La Venganza

El .htaccess tiene opciones para hacer una cosa que se llama RewriteCond... que es una condicion...

Por ejemplo en este foro... si utilizara un archivo .htaccess por cada post... es muy probable que tendria que usar al menos un 2% del tamaño en la base de datos del post en espacio para el htaccess en el disco.

Lo que debes hacer es tomar los datos y enviarlos con las variables que el htaccess te da... por ejemplo:

Código:
RewriteRule ^calendario/(.+)/(.+)/(.+)\.php cal.php?dia=$3&mes=$2&ano=$1
En este caso si acceden a la direccion: "www.tusitio.com/calendario/2007/10/13" realmente van a acceder a "www.tusitio.com/cal.php?dia=13&mes=10&ano=2007" y de esta manera no tienes que crear tantos htaccess como tus productos... sino encontrar una solucion para todo y usar las variables de htaccess.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 02/11/2007, 14:31
Avatar de ASLAN  
Fecha de Ingreso: septiembre-2007
Mensajes: 419
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: URL Amigables 2 - La Venganza

Gracias por responder

Me queda claro lo que explicas de jugar con las mismas variables que exhibo
Pero cómo hago para convertir esto:
http://www.misitio.com/proceso.php?id=280

En esto
http://www.misitio.com/cursos_de_ingles.php

Se supone que 280 está asociado a "cursos de ingles" sólo en una base de datos
¿Cómo saco el valor de la base de datos para entregarsela a .htaccess?
¿O eso se hace de otra forma?

Gracias

ASLAN
__________________
Registros Akáshicos
  #4 (permalink)  
Antiguo 05/11/2007, 02:10
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: URL Amigables 2 - La Venganza

Bueno... la magia es que en vez de que tu .htaccess se vaya a esa pagina directamente, lo que puedes hacer es irte a una intermedia... en donde tomes ese 280 y (me imagino que el 280 en tu DB dice url = cursos_de_ingles.php) hacer la redireccion a esta pagina.

Suerte y nos comentas como te va !
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 05/11/2007, 02:27
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: URL Amigables 2 - La Venganza

Bajate wordpress, instalatelo y configura los permalinks como tu quieres. Luego mira el htaccess y veras que redirecciona toda URL que no exista fisicamente a index.php sin pasarle parametros.

Si miras el codigo, veras que lee la URL solicitada de una variable (no recuerdo si $_SERVER['request_URI'] o algo asi) y esa URL la busca en la base de datos.

Resumiendo, redireccionas todo a index.php y via php lees la url y la buscas en la BD.
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 05:42.