Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/01/2011, 00:15
Avatar de andres_aquino
andres_aquino
 
Fecha de Ingreso: septiembre-2010
Ubicación: $("#place").html("FDW");
Mensajes: 138
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: MVC y URL Keywords

[B]Bueno Heli0s, creo tener la respuesta a tu pregunta. Me sucedió lo mismo en un proyecto personal de varios meses atrás en el que quería implementar las URL amigables como lo hacen los frameworks.

La cuestión es la siguiente:todo está en configurar el archivo .htaccess para que te haga el ruteado del URI que está recibiendo actualmente mediante unas reglas. Te pondré como ejemplo, parte del proyecto que había desarrollado.

Pasar de esto
example.com/news.php?id=334&title=titulo-url-amigable

a esto
example.com/news/334/titulo-url-amigable

o a esto
example.com/news/334/titulo-url-amigable.html


Configurando el .htaccess
Para que este sistema de URL amigables funcione correctamente, en el .htaccess localizado en el raíz de tu servidor, se coloca el siguiente código:

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^news/([0-9]+)/([a-z-]+)?$ news.php?id=$1&title=$2 [L]

El resultado del código de arriba es este: example.com/news/334/titulo-url-amigable.


Colocar extensión
Ahora bien, cómo agregarle en forma dinámica la extensión .html a la cadena URL? Eso se resuelve como sigue, agregándole a la tercera línea ".html$", queda así:

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^news/([0-9]+)/([a-z-]+).html$ news.php?id=$1&title=$2 [L]

De esta forma, la URL queda así: exemplo.com/news/334/titulo-url-amigable.html. El "html" lo podemos cambiar por el que más guste, como por ejemplo: .asp (?), .htm, .php, .cgi, etc. etc. Pero es mejor dejar así para un buen SEO y buenas prácticas por sobre otras cosas. Eso esto lo que necesitas para poder implementar un sistema de URL amigables a tu propio MVC en desarrollo. Espero te sirva de mucho como a mí me lo había servido en su tiempo (y sigue sirviendo siempre!)

Saludos
__________________
Te sirvió mi ayuda? +1 ;D
Andy Aquino - @aquiandres