Foros del Web » Programando para Internet » PHP »

Url amigables con php y .htaccess

Estas en el tema de Url amigables con php y .htaccess en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/11/2012, 09:23
 
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 :)
  #2 (permalink)  
Antiguo 07/11/2012, 09:33
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Url amigables con php y .htaccess

Gracias por tus aportes pero tienes algunos detalles ke te comento.

1- primero ke todo debes especificar ke seria solo para servidores web apache
2- debes activar el modulo de Rewrite en el apache server en el httpd.conf antes de comenzar todo esto
3- el archivo .htaccess no existe por lo ke primero debes crearlo antes de comenzar.
4- debes filtrar los valores ID y TITULO ke viene por el get porke si no tu pagina dura solamente 2 minutos activa en internet
5- vas a remplazar caractere e, i, o, u por nuevamente los mismo caracteres e, i, o, u

Etiquetas: htaccess, seo, url, amigables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:38.