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

Funciones en php para hacer urls amigables.

Hola buenos das a todos.
Me gustaria solicitar su ayuda para poder hacer urls amigables con funciones de php.
Por ejemplo en la hoja para listar productos o post o lo que sea que se este leyendo de la base de datos poner un campo mas llamado SEO para poner mis palabras y luego mediante una "magia" que estan salgan en la url donde se muesta el contenido.
Espero me puedan ayudar con este tema.
Saludos y gracias.
0
Puntos
3203
Visitas
4
Resp
Por poxipol hace 51 meses
Principiante
Respuesta #1
Hola poxipol, te recomiendo leerte este tema a ver si te responde tu duda. Si no, comenta aqu y resolvemos.

Ver tema
0
Puntos
Por Jose hace 51 meses
Experto Sitio web
Respuesta #2
Hola Jose gracias por contestar a mi post.
Mira ya habia leido el post que me comentas pero la verdad no es realmente lo que necesito realizar.
Lo que requiero hacer exactamente es en la pagina de la administracion que tengo poner un campo SEO
por ejemplo:
IdProducto:
Nombre:
Precio:
Estado:
Imagen:
Detalles:
SEO:

y que las palabras que yo ponga en ese campo SEO salgan por la url cuando se vea la pagina de ese producto en concreto.
Es exactamente lo que hace el usuario jorge vila en youtube donde crea una tienda online. (Lo que pasa es que para ensearte ese detalle el te cobra 60 euros creo).

Espero me puedar ayudar.
Saludos y muchas gracias.

0
Puntos
Por poxipol hace 51 meses
Principiante
Respuesta #3
Wow.. ¿60?

Bueno mira, normalmente el SEO es el titulo de algo, en tu caso supongo que sera el nombre del producto, usar el nombre como ejemplo.

En el tema que te refer, hay una funcin llamada seo_url que lo que hace es convertir algunos caracteres en otros para que no se vea feo en la url. Por ejemplo
sin la funcin:

Hola%20amigos

con la funcin

Hola-amigos
Al momento de insertar el valor a la base de datos debes colocar la variable, entre la funcin. Ejemplo
<?php 

//Funcin para remplazar cadena
function seo_url($cadena){
	$cadena= utf8_decode($cadena);
    $cadena = str_replace(' ', '-', $cadena);
	$cadena = str_replace('?', '', $cadena);
	$cadena = str_replace('+', '', $cadena);
	$cadena = str_replace(':', '', $cadena);
	$cadena = str_replace('??', '', $cadena);
	$cadena = str_replace('`', '', $cadena);
	$cadena = str_replace('!', '', $cadena);
	$cadena = str_replace('¿', '', $cadena);
	$originales = '??';
    $modificadas = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
    $cadena = strtr($cadena, utf8_decode($originales), $modificadas);
   
    return $cadena;
	
}

// Convertir el nombre del producto en url amigable.

$Nombre_Del_Producto = "Libro para nios";

$seo=  seo_url($Nombre_Del_Producto);
?>
Y en tu consulta mysql colocas que la variable a insertar en ese campo ser $seo.

Ya con eso est hecho la primera parte que es convertir el nombre, o titulo en una url amigable. Ahora ¿cmo visualizarla?
Supongamos que tienes una URL original que es
http://tupagina.com/producto.php?seo=Libro-para-ninos
Pero tu quieres que sea
http://tupagina.com/producto/Libro-para-ninos

Para eso se usa el archivo .htaccess, debes crear un archivo sin nombre de extensin .htaccess y colocas esto
## Esto es un comentario <--
## Activar mod_rewrite de Apache para la reescritura de las URL
RewriteEngine On

## URL amigable de los articulos
RewriteRule ^producto/(.+)$                    producto.php?seo=$1
Glosario:

^producto/(.+)$ : Significa la ruta amigable que deseas. Ejemplo: http://tupagina.com/producto/Libro-para-ninos
prudcto.php?seo=$1 : Significa la ruta original que ser reemplazada, el $1 significa el valor que toma seo=


Bien, el .htaccess debes guardarlo en la carpeta raz y no en subcarpetas. Si escribes en la url
http://tupagina.com/producto/nombre-del-producto

Debera mostrarte la pgina. Pero eso no es todo, falta modificar (si tienes) el enlace que te lleva a eso. Por ejemplo si antes tenas
<a href="producto.php?seo=X"> Ver producto </a>
Ahora debe ser
<a href="producto/X"> Ver producto </a>
Es decir, colocar la ruta amigable que pusiste en el .htaccess y X sera la variable que contiene el valor del campo seo de la base de datos.

Si mi explicacin no es suficiente, pregunta sin pena y te vuelvo ayudar :D
Suerte.



5
Puntos
Por Jose hace 51 meses
Experto Sitio web
Respuesta #4
Jose. Gracias por tu ayuda recien hoy pude leer tu respuesta, voy a probar el script y te cuento como me fue.
Nuevamente gracias.
Saludos
5
Puntos
Por poxipol hace 51 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate