Pretty URLs

27/04/2010
By

Muchas veces hemos visto las URL de algunos sitios que tienen, tras una interrogación de cierre (?) una hilera de valores con iguales (=) separados por ampersand (&). No obstante, hay otros muchos sitios que sus URLs, más específicamente sus URIs, son palabras en minúscula, con algunos guiones y números escasos, separados por barras inclinadas (/). Este último método es conocido con pretty urls.

Tener este tipo de URLs, o URIs en nuestro dominio, se puede hacer mediante la creación de directorios y especificando los ficheros dentro de los mismos que tengan los nombres (sin extensión) que queremos que se visualicen en la barra del navegador… pero no es nada útil y es complejo, sobre todo cuando se usan entornos como WordPress o similares, donde el contenido de la base de datos dicta lo que aparece en la página, y es totalmente dinámico.

La solución que se puede emplear: rewrite. En Apache, a través del módulo mod_rewrite, se pueden crear reglas de redireccionado de modo que una URL que es:

http://midominio.com/?p=129&a=crea-usuario

Se puede convertir en:

http://midominio.com/crea-usuario/129

En el caso concreto, tan solo bastaría con agregar un bloque de configuración como el siguiente:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.+)/([0-9]+)$    /index.php?p=$2&a=$1

Para más información vea la documentación oficial de Apache.

Tags: , , ,

2 Responses to Pretty URLs

  1. bombadil on %d 05UTC %B 05UTC %Y at %H:%M 11Wed, 05 May 2010 11:16:31 +000031.
    Usando Debian IceWeasel Debian IceWeasel 3.0.6 en Debian GNU/Linux Debian GNU/Linux

    En lighttpd las reescrituras se pueden realizar como se ven en su documentación. Ejemplo:

    url.rewrite-once = (
        "^/id/([0-9]+)$" => "/index.php?id=$1",
        "^/link/([a-zA-Z]+)" => "/index.php?link=$1"
    )
    

    [ Responder ]

  2. bombadil on %d 05UTC %B 05UTC %Y at %H:%M 11Wed, 05 May 2010 11:20:03 +000003.
    Usando Debian IceWeasel Debian IceWeasel 3.0.6 en Debian GNU/Linux Debian GNU/Linux

    En Cherokee se puede conseguir con redirecciones internas. En este hilo se comenta por encima, a través de la modificación de los “Behaviours” cómo se hacen las redirecciones:

    http://groups.google.com/group/cherokee-http/browse_thread/thread/c3217696dd2b2ec2

    [ Responder ]

Deja un comentario

Tu dirección de correo electrónico no será publicada.