• a

  •  

    noviembre 2006
    L M X J V S D
    « oct    
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  
  • Archivos

  • Páginas

  • Blog Stats

    • 16,882 hits
  • Posts Más Vistos

    • Etiquetas

    • Comentarios recientes

      Javiera on La coincidencia de “Los …
      osval on La coincidencia de “Los …
      washington on La coincidencia de “Los …
      Josefa Gonzalez on La coincidencia de “Los …
      lucho ramirez on Optimiza tu blog para los…

    Buenas razones por las que utilizar urls amigables

    Mucho se escucha sobre las famosas urls amigables y muchas veces los desarrolladores se plantea implementar en su sitio las urls amigables.

    ¿Por qué deberias poner urls amigables en tu sitio?

    Pues hay varias razones pero lo que habrá que plantearse es si estos motivos son suficientes como para rediseñar tu sitio y adaptarlo al uso de urls amigables.

    1. Marketing Viral

    El marketing viral y la publicidad viral son términos que se utilizan para explicar aquellas tácticas que utilizan redes sociales para producir incrementos exponenciales en el conocimiento de tu sitio.

    Obviamente es mucho mas sencillo recordar http://www.tufuncion.com/linea_comandos que http://www.tufuncion.com/node?id=17.

    Del mismo modo será más sencillo recordar una url descriptica cómo la escrita anteriormente.

    2. Optimización

    La mayoría de los buscadores (pocas excepciones como Google) no indexa cualquier página que tenga símbolos raros (?,=,&) en la url.

    Por eso muchas webs dinámicas no son correctamente indexadas, y obviamente no es bueno que no te indexen.

    Efecto del cambio

    El efecto que esto provocó en Google fue enorme, el buscador empezó a pasearse como Pedro en su casa por el Weblog e indexó casi todo su contenido. Pasamos de tener unas 5,000 páginas indexadas a más de 12,000… no me pregunten ¿por qué?, pero fue a consecuencia del cambio (de esto no hay duda).

    Otro efecto positivo (si el afán es el posicionamiento en buscadores), fue la mayor atracción de visitantes pasajeros (no es mi intención hablar de estadísticas, pero aproximadamente hubo un incremento del 10% al 20% de tráfico por Google).

    Baluart.net

    3. Imagen de tu marca

    La imagen de tu sitio sera mucho más transparentes aquellos id seran convertidos en palabras que diran en cada momento algo interesante sobre la página que albergan.

    Es una de las principales características de las webs 2.0 lo que dice mucho sobre el futuro de esta técnica, está claro que si el objetivo de un buscador tan importante como Google es organizar la informacion del mundo terminarán premiando a aquellos que les faciliten el trabajo, CMS cómo Drupal, Joomla, WordPress, Moveable Type utilizan está técnica obteniendo unos resultados geniales.

    Hacer URLs amigables

    Voy a explicar dos técnicas para llevar a cabo esta mejora en nuestras páginas, ambas funcionan con PHP-Apache.

    Método 1: PATH_INFO

    Si echas un ojo a la barra de direcciones de webs cómo Sitepoint veras una URL como esta:

    http://www.sitepoint.com/article/flex-2-internet-applications

    Sitepoint utiliza este método para hacer sus URLs amigables.

    Esta solución es la menos avanzada tecnologicamente pero la que requiere de menos recursos, va para aquellos que tienen una cuenta de hosting compartido o un servidor gratuito, habrá que colocar este script en la cabecera de todas nuestras páginas (recomendable el uso de include).

    $var_array = explode(“/”,$PATH_INFO);
    $num_param = count($var_array );

    if($num_param % 2 == 0) {

    $var_array [] = ”;

    $num_param++;

    }

    for($i=1; $i<$num_param; $i+=2) {

    $$var_array [$i] = $var_array [$i+1];

    $total=$total + $$var_array [$i];

    }

    La clave de su funcionamiento está en que toma los números pares como variables y los impares cómo los valores.

    Tomemos cómo ejemplo esta url:

    “http://www.tusitio.com/articulo.php/id/333/noticia/21″

    Primeto separamos las diferentes partes en variables, usando la funcion explode de php.

    Una vez realizado esto, obtendremos el siguiente resultado:

    $var_array[0] = “articulo.php”

    $var_array[1] = id

    $var_array[2] = 333

    $var_array[3] = noticia

    $var_array[4] = 21

    Podríamos renombrar los $var_array[1] por nombres más descriptivos como $id o $noticia y hacer una consulta a la base de datos con está información.

    Si vas a utilizar este método asegurate de tener controlado el log de tu servidor para evitar las molestas “arañas”.

    Método 2 .HTACCESS

    Este método implica el uso del archivo .htaccess, si eres nuevo en esto, te puedo decir que es un archivo que se utiliza para administrar las opciones de acceso en el directorio en el que se encuentra alojado.

    En primer lugar asegurate de tener activado el mod_rewrite esencial para el uso de este método, edita un fichero y pega este código:

    phpinfo();

    ?>

    Una vez comprobado que el mod_write está activado podemos pasar a configurar nuestro .htaccess:

    Options +FollowSymLinks

    RewriteEngine on
    Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5

    Rewriterule ^(.*)/(.*),(.*)/$ $1.php?$2=$3

    En las dos primeras líneas comprobamos el correcto funcionamiento del mod_rewrite en el Apache (si esto no funciona vuelve al paso anterior y compruébalo).

    En las líneas siguientes se establecen una serie de reglas que nos permitirán transformar nuestras URLs.

    Analizemos la regla: Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5

    Los valores precedidos por el símbolo dólar ($) reemplazan a los (.*) de las URL amigables.

    Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5

    Supongamos que tenemos esta url:

    ./index.php?seccion=coches&id=12345

    obtendremos…

    ./index/seccion,coches/id,12345/

    Por lo tanto nos quedamos con el nombre del script libre de extensión, y transformamos los valores en subcarpetas.

    Sube el .htaccess y comprueba que todo funciona correctamente, una vez hecho esto edita todas las reglas que necesites.

    Por último falta revisar nuestro antiguo código, tomando como comienzo que el resultado de la consulta a la base de datos esta en $rs nuestro código viejo sería:

    while($row = @ mysql_fetch_array($rs)){

    $category = $row["category"];

    $category = URLencode(htmlentities($category,ENT_QUOTES));

    $subject= $row["subject"];

    $subject = URLencode(htmlentities($subject,ENT_QUOTES));

    /*format for following HTML result
    www.mysite.com/main.php?category=books&subject=biography

    */

    echo “<’a href=\”http://www.mysite.com/main.php?

    category=$category&subject=$subject\”>”;

    echo “$row[description]
    \n”;
    }

    ?>

    Y nuestro código para URLs amigables quedaría:

    while($row = @ mysql_fetch_array($rs){

    $category = $row["category"];

    $category = URLencode(htmlentities($category,ENT_QUOTES));
    $subject= $row["subject"];

    $subject = URLencode(htmlentities($subject,ENT_QUOTES));

    /*format for the URL rewrite is as follows

    www.mysite.com/type$category-$subject.htm

    */

    echo “<’a href=\”http:/www.mysite.com/type$
    category-$subject.htm\”>”;

    echo “$row[description]
    \n”;

    }

    ?>

    Enlaces interesantes

    Cómo consejo final conviene antes de comenzar conocer más sobre el uso del mod_rewrite en Apache.

    SitePoint: Search-Engine Firendly Urls

    Baluart.net

    Devarticles: Make Dynamic URLs

    Foro: Uso de URLs amigables

    Una respuesta

    1. [...] Ahora que estoy migrando el blog, también estoy intentando personalizarlo un poco, y claro para ello tengo que indagar un poco en WordPress. Supongo que todo el mundo que sigue leyendo por aquí sabe un poco de WordPress. Es un sistema que está montado en PHP más MySQL. Esta tarde he estado indagando para cambiar la forma en cómo se pone el título de las páginas: Me interesaba que para cada anotación el título de la página (la sentencia “” que aparece al principio) fuese el nombre propio de la anotación, y no el que pone WordPress por defecto. Así que nada, buscando en google, obtuve el resultado: Basta con irse al fichero “header.php”, que tiene la información sobre la cabecera de la página, buscar el trozo de código que asigna el atributo , en concreto el que tenía para mi theme era: [...]

    Deja un comentario

    Fill in your details below or click an icon to log in:

    Logo de WordPress.com

    You are commenting using your WordPress.com account. Log Out / Cambiar )

    Twitter picture

    You are commenting using your Twitter account. Log Out / Cambiar )

    Facebook photo

    You are commenting using your Facebook account. Log Out / Cambiar )

    Connecting to %s

    Seguir

    Get every new post delivered to your Inbox.