Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2012, 09:23
mubonnet
 
Fecha de Ingreso: noviembre-2012
Ubicación: Formosa
Mensajes: 4
Antigüedad: 11 años, 5 meses
Puntos: 2
Información Url amigables con php y .htaccess

Hola gente, quiero dejarles un corto tutorial de como mejorar el SEO de sus paginas mejorando sus enlaces usando php y el archivo .htaccess. por ejemplo si tienes un un blog, generalmente el tipo de enlaces son asi, sitio.com/verpost.php?id=50, cambiando por url amigables podriamos hacerlo asi: sitio.com/50 o sitio.com/verpost/50.html , o de la forma que mas recomiendo es colocando el titulo del post en el url de esta forma: sitio.com/url-amigables-con-php-y-htaccess.html (el .html es a preferencia mia).

Bien comensemos con el Script, vamos a explicar un poco sobre el metodo Get que es el que logra el clasico "?id=" en el enlace.
Para poder crear un enlace de tipo: sitio.com/50 solo usaremos .htaccess y obviamente una vez hecho cambiar los link de tu sitio por el nuevo.

en el archivo .htaccess se coloca asi:

RewriteEngine on
Rewriterule ^(.+)$ /verpost.php?id=$1

El "^" indica esta parte: sitio.com/"aqui" lo que seria el nuevo enlace, y donde vemos que se coloco el "$1" es para que tome la id del enlace, es decir, antes el enlace se veia asi /verpost.php?id=50 y ahora se veria asi /50.

Para agregarle un formato al nuevo enlace nuevo solo tenes que agregarle asi,

RewriteEngine on
Rewriterule ^(.+).html$ /verpost.php?id=$1

pero eso es a gusto de cada uno.

Ahora para agregar el titulo de la pagina al enlace amigable es necesario crear otro Get llamado titulo donde se tomara el nombre del titulo para pasarlo por la url pero antes tenemos que aplicar la funcion str_replace para remplazar ciertos caracteres para ponerlo en url, aca te dejo el sensillo script:

Código PHP:
<?
$id
$_GET['id'];
$title=$_GET['title'];
$query=mysql_query("SELECT titulo FROM articulos WHERE id='$id'");
$resultadomysql_fetch_array($query); //obtenemos el titulo de post de tu blog..

$buscar= array("á","e","i","o","u",".","¿","?","!","¡"); // creamos un array para colocar los caracteres que vamos a reemplazar..
$reemplazar=array("a","e","i","o","u","-","-","-","-","-"); // creamos otro array con los caracteres reemplazados..
$titulonuevostr_replace($buscar$reemplazar$resultado[titulo]); //con esta funcion como podemos ver se encarga de reemplazar dichos caracteres del titulo obtenido de la base de datos y se veria algo asi: titulo real "Como están?" cambiaria a "Como-estan-".
?>
ahora tenemos que hacer esto en el archivo .htaccess

RewriteEngine on
Rewriterule ^(.+)/(.+).html$ /verpost.php?id=$1&title=$2

y nuestros enlaces se verian asi: sitio.com/50/Como-estan-.html

Bueno espero que este simple tutorial les haya servido obviamente esto es algo simple y se puede mejorar muchisimo y me encantaria si algun experto me da alguna correccion o comentario, muchas gracias y espero averles sido de ayuda :)