Código PHP para generar o crear una URL amigable para buscadores como Google, Bing o Yahoo

Bienvenidos a Ver Tutoriales, en esta ocasión os traigo una función que encontré por internet (siento no poder recordar la fuente), es muy sencilla, y sirve para cambiar todas las letras no funcionales para una url, como son los acentos, la ñ, y todos los caracteres especiales.

De manera que cambiará las á por a las é por e y así con todas las letras. Pongamos el código y lo vereis más claro:

<?
function urlamigable($url) {

// Tranformamos todo a minusculas

$url = strtolower($url);

//Rememplazamos caracteres especiales latinos

$find = array(‘á’, ‘é’, ‘í’, ‘ó’, ‘ú’, ‘ñ’);

$repl = array(‘a’, ‘e’, ‘i’, ‘o’, ‘u’, ‘n’);

$url = str_replace ($find, $repl, $url);

// Añadimos los guiones

$find = array(‘ ‘, ‘&’, ‘\r\n’, ‘\n’, ‘+’);
$url = str_replace ($find, ‘-‘, $url);

// Eliminamos y Reemplazamos el resto de caracteres especiales

$find = array(‘/[^a-z0-9\-<>]/’, ‘/[\-]+/’, ‘/<[^>]*>/’);

$repl = array(», ‘-‘, »);

$url = preg_replace ($find, $repl, $url);

return $url;

}
?>

El código creo que es bastante simple y está bien comentado. Lo único que debemos de hacer es llamar a la función urlamigable que recibe el valor que ha de ser la url a transformar, y nos devolverá la url con los caracteres ya cambiados y listos para indexarse 🙂

Más adelante os pondré como generar un sitemap.xml para vuestra web, atacando la base de datos de mysql y utilizaremos de una manera un poco chorra esta función para que nos indexen más rapidamente los buscadores Google, Bing y Yahoo entre otros.

Pues nada más, espero que os sirva. Se puede comentar 😛

Carlos Dk

Apasionado por la enseñanza y el SEO

6 comentarios en “Código PHP para generar o crear una URL amigable para buscadores como Google, Bing o Yahoo

    • el 3 noviembre, 2010 a las 12:48 am
      Permalink

      Buenas Curioso,

      El httaccess es para indicarle a apache como ha de gestionarse siguiendo unos patrones, en el caso que comentas es con el Rewriterule para asignarle la forma de recoger valores por la url. Pero no es lo que quería exponer, ya que necesitaría un artículo completo para explicar el Rewrite.

      Si quieres puedes colaborar :). De todas maneras lo tomaré en cuenta y si tengo esta semana un rato lo miraré para crear una url sencilla con un par de parámetros.

      Un saludo!

      Respuesta
  • el 16 agosto, 2011 a las 3:54 am
    Permalink

    Hola probé su función y este es el resultado.

    con_guion($url)// $url=Mi primer con Ñandú

    devuelve mi-primer-con-and

    cuando deberia devolver mi-primer-con-nandu

    creo que algo falla en la función.

    Respuesta
    • el 16 agosto, 2011 a las 11:32 am
      Permalink

      // Esta función devuelve un valor sin acentos ni simbolos raros para utilizarse
      // en las urls amigables
      function urla($url) {

      // Tranformamos todo a minusculas
      $url = strtolower($url);

      //Rememplazamos caracteres especiales latinos
      $find = array(‘á’, ‘é’, ‘í’, ‘ó’, ‘ú’, ‘ñ’);
      $repl = array(‘a’, ‘e’, ‘i’, ‘o’, ‘u’, ‘n’);
      $url = str_replace ($find, $repl, $url);

      // Añaadimos los guiones
      $find = array(‘ ‘, ‘&’, ‘\r\n’, ‘\n’, ‘+’);
      $url = str_replace ($find, ‘-‘, $url);

      // Eliminamos y Reemplazamos demás caracteres especiales
      $find = array(‘/[^a-z0-9\-]/’, ‘/[\-]+/’, ‘/]*>/’);
      $repl = array(», ‘-‘, »);
      $url = preg_replace ($find, $repl, $url);
      return $url;

      }

      Revisa esta función, está completa y en producción

      Respuesta
  • el 22 febrero, 2018 a las 9:01 pm
    Permalink

    Gracias Leon, funciona correctamente.

    Respuesta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.