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
2349
Visitas
11
Resp
Por tokens hace 11 años
Novice
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 11 años
Admin
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 11 años
Admin
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 11 años
Novice
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 11 años
Admin
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 11 años
Novice
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 11 años
Master
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 11 años
Master
Respuesta #8
Para ver las estilos y las imagenes tiened que usar la url absoluta
0
Puntos
Por alber hace 11 años
Admin
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 11 años
Novice
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 11 años
Master
Respuesta #11
Listo están saliendo al fin.
Les agradezco a todos.
Saludos
0
Puntos
Por tokens hace 11 años
Novice
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar