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 días 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
2844
Visitas
4
Resp
Por poxipol hace 45 meses
Principiante

Respuesta #1

Wow.. ¿60?

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

En el tema que te referí, hay una función 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 función:

Hola%20amigos

con la función

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

//Función 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 niños";

$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 ¿cómo 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 extensión .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 raíz y no en subcarpetas. Si escribes en la url
http://tupagina.com/producto/nombre-del-producto

Debería mostrarte la página. Pero eso no es todo, falta modificar (si tienes) el enlace que te lleva a eso. Por ejemplo si antes tenías
<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 sería la variable que contiene el valor del campo seo de la base de datos.

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



5
Puntos
Por Jose hace 45 meses
Experto Sitio web

Respuesta #2

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 45 meses
Principiante

Respuesta #3

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 45 meses
Experto Sitio web

Respuesta #4

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 enseñarte ese detalle el te cobra 60 euros creo).

Espero me puedar ayudar.
Saludos y muchas gracias.

0
Puntos
Por poxipol hace 45 meses
Principiante

Relaccionados

Para comentar Inicia sesión o Registrate
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar