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

Php + Urls Amigables + Mode-write + .htaccess

Estas en el tema de Php + Urls Amigables + Mode-write + .htaccess en el foro de Apache en Foros del Web. Hola a todos Tengo el siguiente problema no parece funcionar las URLs amigables, tengo la siguiente url: http://www.dominioz.cn/modelos-calde...tible=Gas&id=1 Y la quiero convertir a amigable, tengo ...
  #1 (permalink)  
Antiguo 28/01/2009, 01:47
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 4 meses
Puntos: 0
Php + Urls Amigables + Mode-write + .htaccess

Hola a todos

Tengo el siguiente problema no parece funcionar las URLs amigables, tengo la siguiente url:

http://www.dominioz.cn/modelos-calde...tible=Gas&id=1

Y la quiero convertir a amigable, tengo el mod-rewrite activado lo he comprobado, ademas en mi .htaccess tengo lo siguiente:

Cita:
Options +FollowSymLinks
RewriteEngine on
RewriteRule modelos-calderas(.*)-(.*)-(.*)\.htm$ /modelos-calderas.php?marca=$1&combustible=$2&id=$3
No funciona ni a tiros, os debo comentar que algunos datos los traigo por el metodo include llamando a la carpeta /includes donde he puesto tambien un .htaccess y me da lo mismo por que no funciona.

Tengo apache 2 y php.

¿Mi pregunta es tengo que añadir algo a mis script en concreto a modelos-calderas.php o con el .htaccess y mod-rewrite deberia de valer?

Saludos a todos y mil gracias.
  #2 (permalink)  
Antiguo 04/03/2009, 22:35
Avatar de lemattma  
Fecha de Ingreso: marzo-2009
Ubicación: Santiago
Mensajes: 49
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Php + Urls Amigables + Mode-write + .htaccess

Podrias poner la URL amigable completa y la otra a la que quieres llegar?
Pienso que puede ser las variables que estas usando.

No debes poner nada en tu script, exepto para formar la url amigable si es desde base de datos.

Prueba tambien al final del rewriterule un [NC] para el case insensitive.
  #3 (permalink)  
Antiguo 29/04/2009, 05:03
Avatar de MisatoKatsuragi  
Fecha de Ingreso: abril-2009
Mensajes: 109
Antigüedad: 15 años
Puntos: 2
Pregunta Respuesta: Php + Urls Amigables + Mode-write + .htaccess

O sea, si simplemente queremos que un
loquesea.php?lang=es
sea:
/es/loquesea.html

seria....

Options +FollowSymLinks
RewriteEngine on
RewriteRule /(.*)/loquesea\.html$ /loquesea.php?lang=$1


Cierto???



lemattma, puedes explicar un poco mas eso de que si la url la construimos desde bbdd sí hay que poner algo en el fichero .php???

Ando loca buscado info acerca de la url amigables (tambien cuando se usan desde bbdd), pero estoy más que perdida....


gracias desde ya
  #4 (permalink)  
Antiguo 05/05/2009, 14:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Php + Urls Amigables + Mode-write + .htaccess

Hola, mira esto a ver si te sirve, dado a que yo tambien he renegado bastante con el tema.. pero por suerte he atinado y aqui me han ayudado mucho
Yo que tu probaria de poner lo siguiente:

En .htaccess:
RewriteRule modelos-calderas/(.*)/(.*)/(.*)\.htm$ /modelos-calderas.php?marca=$1&combustible=$2&id=$3

(Si esta regla no te funciona prueba de poner la url, es decir:
RewriteRule modelos-calderas/(.*)/(.*)/(.*)\.htm$ http://www.tudominio.com/modelos-calderas.php?marca=$1&combustible=$2&id=$3
)

En tu script de php donde hagas uso de este enalce, prueba de hacer la correspondencia entre el link amigable y los registros (marca, combustible e id) que recuperes de la base de datos:

<a href="el-texto-q-quieras-se-vea-en-la-url-ej-modelos-calderas/<?php echo $row_rRecordsetDeTuTabla['marca']; ?>/<?php echo $row_rRecordsetDeTuTabla['combustible']; ?>/<?php echo ($row_rRecordsetDeTuTabla['id'].".html"); ?>">Modelos de Calderas</a>

Creo q deberías dar con la correcta correspondencia entre el enlace del script de php y la regla del RewriteRule.
Espero te sirva, a mi esto me funciono muy bien!! Suerte.
  #5 (permalink)  
Antiguo 07/06/2009, 12:50
Avatar de MisatoKatsuragi  
Fecha de Ingreso: abril-2009
Mensajes: 109
Antigüedad: 15 años
Puntos: 2
Respuesta: Php + Urls Amigables + Mode-write + .htaccess

Hola buenas!!!!


despues de mucho tiempo y muchos cabezazs, he conseguido que medio funcione.... os cuento:

Funcionamiento original (antes de meterme con las urls amigables)
desde una pagina (mi-sitio-de-ventas.php) hago una consulta a una bbdd por medio de la cual obtengo una lista. En cada elemento hago un link con el id para ir a otra pagina (fichas.php) donde se ve la ficha del elemento en cuestion. Ademas, en esa ficha se vuelve a mostrar la lista de antes, para facilitar el ver los demas articulos. Los links eran del tipo fichas.php?id=23


Con las urls amigables

he cogido la funcion para quitar espacios y tal de baluarte.net, justo al comenzar el while despues de la consulta a la bbdd para mostrar la lista pongo

$url = $row["Modelo"];

que aunque no lo uso para la consulta, me viene bein para construir la url
y los links son asi:
a href=\"ventas/".urls_amigables($url)."-". $row["Id"] ."\"

y en htaccess:
RewriteRule ^ventas/(.+)-(.+)/?$ fichas.php?id=$2 [QSA] (el 2 porque el primer parametro que es el modelo, no lo quiero para nada mas que para construir la url)

en la lista que se muestra con la ficha igual.

Y va de coña!!!!! pero tengo un problemilla...... y es que si continuo navegando por los links de diha segunda lista (la que se muestra en la ficha) en la url se me van añadiendo "carpetas" de este modo:

hahetetepe://localhost/test1/ventas/ventas/ventas/ventas/ventas/hello-kitty-46
(hello-kitty=modelo y 46=id)

Alguien sabe decirme donde he metido la pata??????


Muchisisisisisisimas gracias


Por cierto, muchas gracias mrmaria, por darme el tip de que el link sea como quier que salga en la url...
  #6 (permalink)  
Antiguo 08/07/2009, 13:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 2
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Php + Urls Amigables + Mode-write + .htaccess

Hola!! MisatoKatsuragi

Yo tenia el mismo problema,mi archivo .htaccess añadia las carpetas y las variables cada vez que hacia una peticion.

Intente con varias reglas pero ninguna me funciono, asi que recorde que en un post lei que un comentario que decia que al usar .htaccess muchas veces los links y peticiones a servidor deben tener una ruta absoluta a tu dominio, no se que tan cierto sea esto pero a mi me a funcionado.

Lo solucione de este manera:

mi archivo .htaccess esta configurado asi:

Options +FollowSymLinks

RewriteRule ^prueba/(.+)/(.+)/(.+)?$ index.php?destino=$1&minimo=$2&maximo=$3

No hay mucha ciencia en mi .htaccess solo es una llamado a un php pasandole 3 variables

la clave a mi solucion fue que en los link llamo a mis archivos php con un url absoluta:

//defino mis variables
$destino=$_get['destino'];
$minimo=$_get['minimo];
$maximo=$_get['maximo'];


<a href='RUTA ABSOLUTA A TU DOMINIO/prueba/$destino/$minimo/$maximo' target='_self' >ir destino</a>


Como puedes ver al colocar url absolutas se soluciona, tambien se soluciono así un problema con los archivos css que no querian funcionar a causa del .htaccess, los llame con url´s absolutas y funcionaron.

Espero te pueda ser de alguna utilidad mi solución ydisculpa que no pueda mostrarte como quedaria mi enlace completo, pero el foro no me lo permitio.

Saludos desde Mexico.
  #7 (permalink)  
Antiguo 13/07/2009, 19:10
Avatar de MisatoKatsuragi  
Fecha de Ingreso: abril-2009
Mensajes: 109
Antigüedad: 15 años
Puntos: 2
Respuesta: Php + Urls Amigables + Mode-write + .htaccess

Hum!!! lo probaré, de momento lo he solucionado haciendo una ñapa... en vez de hacer que las urls fueran misitio/ventas/juguetes/hello-kitty he hecho que sean misitio/ventas-juguetes-hello-kitty
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:05.