Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Problema con url amigable.

Hola amigos que tal estan.
Miren tengo un problema estoy haciendo las url amigables pero cuando tengo una url de este tipo:
servicios.php?idServicio=1
No me resulta. Les muestro el codigo que estoy usando.

En el .htaccess Active la reescritura de url (Eso funciona bien)
y luego pongo
RewriteRule ^lo-que-se-muestra-en-la-url.html/(.+)$ servicios.php?idServicio=1

y en el href del boton apunta a: servicios.php?idServicio=1
luego lo cambio por: lo-que-se-muestra-en-la-url.html

Me dice que la pagina no existe.
El problema lo tengo cuando las direcciones usan el id de la base de datos

Les agradeceria mucho si me pueden dar una mano con este problemos que tengo.

Saludos y gracias.
0
Puntos
2402
Visitas
11
Resp
Por tokens hace 113 meses
Principiante
Respuesta #1
ahí va el código espero que te sirva:

El enlace:
<a href="http://tudominio.com/lo-que-se-muestra-en-la-url.html">Titulo</a>
El .htacces:
RewriteEngine on
RewriteRule ^(.+).html servicios.php?idServicio=$1
la consulta de servicios.php
$query_Datos = "SELECT * FROM posts WHERE seo='$_GET['idServicio']'";

0
Puntos
Por alber hace 113 meses
Administrador
Respuesta #2
la consulta mejor la haces asi
	mysql_select_db($database_conexion, $conexion);
	$query_Datos = sprintf("SELECT * FROM post WHERE seo=%s",
	

	GetSQLValueString($_GET['idServicio'], "text"));
	
	
	
	
	$Datos = mysql_query($query_Datos, $conexion) or die(mysql_error());
	$row_Datos = mysql_fetch_assoc($Datos);
	$totalRows_Datos = mysql_num_rows($Datos);
0
Puntos
Por alber hace 113 meses
Administrador
Respuesta #3
alber dijo:
la consulta mejor la haces asi
	mysql_select_db($database_conexion, $conexion);
	$query_Datos = sprintf("SELECT * FROM post WHERE seo=%s",
	

	GetSQLValueString($_GET['idServicio'], "text"));
	
	
	
	
	$Datos = mysql_query($query_Datos, $conexion) or die(mysql_error());
	$row_Datos = mysql_fetch_assoc($Datos);
	$totalRows_Datos = mysql_num_rows($Datos);
Hola albert.
Primero gracias por tu respuesta.
Mira yo tengo en el index un boton que tiene en el href servicios.php?idServicio=1 , y esto me lleva a la pagina servicios.php

que tiene la consulta que me muestra la informacion a la que se le haya dado click.
En la base de datos tengo una tabla llamada servicios y en ella estan listados todos los servicios disponibles.
Te lo comento por que no entendi lo de la consulta llamando a la tabla seo.

Espero haberme explicado bien
Saludos y gracias
0
Puntos
Por tokens hace 113 meses
Principiante
Respuesta #4
en el index cambia ese enlace por el de la url amigable del post
<a href="http://tudominio.com/lo-que-se-muestra-en-la-url.html">Titulo</a>
la consulta tienes que acomodarla a tu base de datos y tener una columna que tenga las url's amigables
mysql_select_db($database_conexion, $conexion);
	$query_Datos = sprintf("SELECT * FROM servicios WHERE urlamigale=%s",
	

	GetSQLValueString($_GET['idServicio'], "text"));
	
	
	
	
	$Datos = mysql_query($query_Datos, $conexion) or die(mysql_error());
	$row_Datos = mysql_fetch_assoc($Datos);
	$totalRows_Datos = mysql_num_rows($Datos);
con eso ya lo tienes ahora solo te queda ajustarlo a tu proyecto, la idea ya la tienes prueba y nos cuentas
0
Puntos
Por alber hace 113 meses
Administrador
Respuesta #5
Listo entendi lo que me decias, lo que pasa es que tu manejas las url desde la base de datos.
Bueno Hice una pequeña operacion y logre que se reescriba la url con lo que yo quiero, pero nose por que pierde la hoja de estilos y las imagenes. Vale decir toda la informacion que saca de la base de datos es correcta, pero se muestra plana.
No tengo idea por que pasa esto, Pero parece que voy progresando
0
Puntos
Por tokens hace 113 meses
Principiante
Respuesta #6
Hola tokens, es normal que pierda los estilos porque normalmente los tienes por ejemplo
<head>
<link rel="steelsheet" href="css/estilos.css">
</head>

Pero haciendo lo de las url amigables estás haciendo como si estuviese dentro de otro directorio, entonces ya no sería así sino así
<head>
<link rel="steelsheet" href="../css/estilos.css">
</head>
Pero para no estar con ese asunto por eso es mejor trabajar con la variable de la URL $urlWeb (no todo el mundo trabaja así), pero así no tendrías ese problema de estar modificando los directorios sino que siempre será absoluto
<head>
<link rel="steelsheet" href="<?php echo $urlWeb ?>/css/estilos.css">
</head>
Que bueno que hayas podido hacer funcionar la url amigable, espero vayas entendiendo cada día como es que funciona :P
Saludos.
0
Puntos
Por Jose hace 113 meses
Experto Sitio web
Respuesta #7
tokens dijo:
Listo entendi lo que me decias, lo que pasa es que tu manejas las url desde la base de datos.
Bueno Hice una pequeña operacion y logre que se reescriba la url con lo que yo quiero, pero nose por que pierde la hoja de estilos y las imagenes. Vale decir toda la informacion que saca de la base de datos es correcta, pero se muestra plana.
No tengo idea por que pasa esto, Pero parece que voy progresando
entonces ya lo tienes solo te falta que te coja los estilos y demas usando la ruta absoluta, como dice jose no todo el mundo usa url absoluta pero los mas veteranos como wordpress, drupal, joomla etc si, con esto te evitas problemas y tienes muchas mas ventajas
0
Puntos
Por zerodarck hace 113 meses
Experto
Respuesta #8
Para ver las estilos y las imagenes tiened que usar la url absoluta
0
Puntos
Por alber hace 113 meses
Administrador
Respuesta #9
Amigos que tal.
Miren efectivamente lo que decía Jose esta en lo correcto, el asunto está en que si pongo ../ efectivamente pesca la hoja de estilo y las imágenes también. Pero el logo de la web y las imágenes que están en el pie de la pagina no se ven Estas están llamadas por un includes.
Entonces si voy al includes y le pongo el ../ se ve, pero en el resto de las hojas del sitio web no. Como podría arreglar ese detalle.

Saludos y gracias.
0
Puntos
Por tokens hace 113 meses
Principiante
Respuesta #10
tokens dijo:
Amigos que tal.
Miren efectivamente lo que decía Jose esta en lo correcto, el asunto está en que si pongo ../ efectivamente pesca la hoja de estilo y las imágenes también. Pero el logo de la web y las imágenes que están en el pie de la pagina no se ven Estas están llamadas por un includes.
Entonces si voy al includes y le pongo el ../ se ve, pero en el resto de las hojas del sitio web no. Como podría arreglar ese detalle.

Saludos y gracias.
de nuevo con la url absoluta es muy secillo entras a los includes y donde tienes las imagenes cambias:
<img src="imagenes/imagen1.jpg">
por:
<img src="http://tudomio.com/imagenes/imagen1.jpg">
o
<img src="http://localhost/imagenes/imagen1.jpg">
0
Puntos
Por zerodarck hace 113 meses
Experto
Respuesta #11
Listo están saliendo al fin.
Les agradezco a todos.
Saludos
0
Puntos
Por tokens hace 113 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate