Inicio  |  Noticias  |  Foro  |  Blogs  |  Galerías  |  Eventos  |  Reportajes 
    Ca l'Avi Blogs
Hola Visitante   Registrate   Logueate 

Como crear URLs amigables con PHP
oscar - 27-11-2009

Vamos a ver como realizar unas URLs amigables para que se indexen correctamente en los buscadores. Es una técnica SEO que consiste en colocar algún texto dentro de la URL para que la ruta sea más entendible para el usuario y por lo tanto para los buscadores.

Imaginemos que escribimos un post en nuestro blog y la URL que genera es: http://www.calavi.net/entresijos/index.php?id=78

Esta URL no aporta ninguna información, simplemente nos daría a un post con una información, pero si en lugar de esa parrafada nos muestra: http://www.calavi.net/entresijos/articulo/78/como-subir-multiples-ficheros.html

Ahora mucho mejor, sabemos que el link nos lleva a un post que habla sobre como subir múltiples archivos y ademas fácilmente indexable por Google ya que le damos un valor extra a la URL.

Para empezar, vereis que la estructura que hago servir es la siguiente:

http://www.calavi.net/entresijos/index.php?id=1  => pasa a => http://www.calavi.net/articulo//id/titulo (y siempre usaremos esta URL)

En la raiz del blog tengo un archivo llamado index.php al que le paso los parámetros del artículo, y este archivo pasa a llamarse articulo, del id solo se mantiene el nº y se muestra el título del artículo.

Para que la URL amigable sea interpretada como index.php?id=78 y que esta pueda ser utilizada para hacer las llamadas a la base de datos y montar el blog, necesitamos modificar el .htaccess con las siguientes lineas:

RewriteEngine on
RewriteRule ^articulo/(.+)/(.+) index.php?id=$1&titol=$2


De esta manera el Apache puede reconocer la url y transformala de forma entendible y poder trabajar con las variables que pasamos por referencia.

Pero ahora nos falta transformar el título, ya que si ponemos acentos y espacios, el navegador no lo interpreta muy bien y empieza a coloar sigos como el %20 en lugar de un espacio, para arreglar esto usaremos una pequeña función en PHP que transforma un texto a URL amigable:

function urls_amigas($url)
{
    $url = strtolower($url); //pasamos a minúsculas

    $find = array(´á´, ´é´, ´í´, ´ó´, ´ú´, ´ñ´,´à´, ´è´, ´ò´, ´ç´);  //indicamos los acentos
    $repl = array(´a´, ´e´, ´i´, ´o´, ´u´, ´n´,´a´, ´e´, ´o´, ´c´);  //su equivalente sin acento
    $url = str_replace ($find, $repl, $url); //reemplaza

    $find = array(´ ´, ´&´, ´ ´, ´ ´, ´+´);  //indicamos los espacios y saltos de linea
    $url = str_replace ($find, ´-´, $url); //los sustituimos por un -

    $find = array(´/[^a-z0-9-<>]/´, ´/[-]+/´, ´/<[^>]*>/´); //carácteres no interpretados en la URL
    $repl = array(´´, ´-´, ´´); //pondremos un -
    $url = preg_replace ($find, $repl, $url); //reemplazamos

    return $url; //retornamos la URL adaptada
}

La llama a la función se puede realizar de la siguiente manera:

<a href="<?php echo "articulo/" . $valoresquery["id"] . "/" . $valoresquery["titulo"] . ".html"?>">Como subir múltiples archivos</a>

Esta función también puede tener su equivalente a ASP, pero lo que pasa es que no lo domino mucho :P

 Comentarios


02-10-2014 Notificar Abuso
04-10-2014 Notificar Abuso
12-10-2014 Notificar Abuso
13-10-2014 Notificar Abuso
16-05-2016 Notificar Abuso
16-05-2016 Notificar Abuso
08-08-2016 Notificar Abuso
14-08-2016 Notificar Abuso
24-09-2016 Notificar Abuso

Para poder comentar has de estar logado en Ca l'Avi


Artículos anteriores

Redondear decimales, hacia arriba y hacia abajo en PHP
Como crear URLs amigables con PHP
Como disminuir el peso de las imágenes con PHP (Parte 2)
Como disminuir el peso de las imágenes con PHP
Como subir múltiples ficheros

 Ver todos 



Resolución mínima de 1024x768© - Portal desarrollado por Softilus para Calavi.net - Copyright 2009, todos los derechos reservados