Generar URLs amigables con htacces

Las URLs amigables son más fáciles de usar y de recordar por los usuarios y también son mejores para el posicionamiento en buscadores. Además describen mucho mejor los enlaces dentro de una página web y añade un mayor nivel de profesionalidad a nuestras webs.

De todas formas, cuando hemos creado una página dinámica en PHP lo normal es que tengamos URL no amigables. ¿Cómo las convertimos en amigables de manera automática? Una manera de hacerlo es con un archivo .htaccess y gracias a Apache y su mod_rewrite.

mod_rewrite es un módulo de Apache que permite manipular en el servidor las URLs solicitadas. Es decir, cuando llega al servidor la solicitud de una URL, esta se comprueba con respecto a una serie de reglas creadas con Expresiones Regulares creadas para detectar un patrón determinado. Si se encuentra ese patrón en el URL y se cumple la condición impuesta por la Expresión Regular se sustituye el patrón por una cadena de texto o por una acción determinada.

En el ejemplo que vamos a ilustrar vamos a tener una lista de usuarios con link a su perfil usando urls amigables.

Como urls no amigables tendremos:

http://www.yourdomain.com/users.php?id=1

Y como url amigable entenderíamos:

http://www.yourdomain.com/juan

Para conseguir este efecto, necesitaremos crear un archivo .htaccess y añadir el siguiente código:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.yourdomain.com
RewriteRule (.*) http://yourdomain.com/$1 [R=301,L]

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ users.php?user=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ users.php?user=$1

Y modificar los links hacia los perfiles de los usuarios añadiendo la url amigable en vez de la no amigable.

Ver ejemplo en funcionamiento

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(11 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

5 respuestas a “Generar URLs amigables con htacces”

  1. juan dice:

    hola
    muy bueno el tutorial ya lo hice pero tengo una dudo

    en mi caso es asi
    ORewriteEngine On
    RewriteRule ^([a-zA-Z0-9_-]+)$ detalle-producto.php?nombre=$1
    RewriteRule ^([a-zA-Z0-9_-]+)/$ detalle-producto.php?nombre=$1

    donde detalle-producto es el pagina en php donde redirecciono y nombre
    es el nombre del producto en el registro de la base de datos

    mi duda es como deberia ponero en el hipervinculo
    ya que normalmente ponemos
    <a href="detalle-producto.php?id=»>
    como deberia poner ya que hice la modificacion en el htacces?

  2. david dice:

    TIENES LOS EJEMPLOS EN PHP QUE ME PUEDAS PASAR?

  3. david dice:

    Amigo pero como hago para generar dinamicamente los enlaces amigables en la pagina, aparte del .htaccess

  4. david dice:

    Hola gracias por su informacion pero no paro de dar vueltas a como adaptar el .htaccees a una url de 4 variables y no lo consigoo como quedaria si la url fuera index.php?btitulo=algo&bautor=alguien&bgenero=Accion&bvoz=espanola

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.