¿Cómo puedo redirigir y reescribir mis URLs con un archivo .htaccess?

Popular:
¡MEJORA LA CONFIGURACIÓN DE TU SERVIDOR! APLICAR AVA Y LANZA CON UN 15% DE DESCUENTO
USA EL CÓDIGO PROMOCIONAL:

Si estás ejecutando un sitio web en un Apache server, el archivo .htaccess es una de las herramientas más poderosas a tu disposición. Te permite controlar cómo se comportan tus URLs — desde redirecciones hasta reescritura limpia de URLs — sin necesidad de cambiar la configuración real de tu servidor.

En este artículo, cubriremos los conceptos básicos de la redirección y la reescritura de URL usando .htaccess, con ejemplos y explicaciones claras.

¿Qué es el archivo .htaccess?

.htaccess significa Hypertext Access. Es un archivo de configuración utilizado en servidores web basados en Apache que te permite realizar cambios a nivel de directorio en el comportamiento del servidor.

Puedes:

  • Redirigir el tráfico de una URL a otra

  • Crear URLs limpias (p. ej., /about en lugar de /about.php)

  • Restringir el acceso a ciertas páginas

  • Habilitar HTTPS

  • Y mucho más

Redirección de URLs

1. Redirección permanente 301

Úsalo cuando una página se haya movido permanentemente a una nueva URL.

Redirect 301 /old-page.html https://yourdomain.com/new-page.html

2. Redirección temporal 302

Úsalo cuando la redirección sea temporal.

Redirect 302 /temp-page.html https://yourdomain.com/coming-soon.html

3. Redirección con mod_rewrite

También puedes redirigir usando RewriteRule:

RewriteEngine On
RewriteRule ^old-page$ https://yourdomain.com/new-page [R=301,L]

Reescritura de URLs (URLs limpias)

La reescritura de URL se usa para hacer que las URLs sean más fáciles de usar y más amigables para SEO. Por ejemplo, en lugar de:

https://example.com/product.php?id=123

Puedes usar:

https://example.com/product/123

1. Regla básica de reescritura

RewriteEngine On
RewriteRule ^product/([0-9]+)$ product.php?id=$1 [L]

Esto le indica a Apache:

  • Cuando alguien accede a /product/123

  • Internamente reescribirlo a product.php?id=123

2. Eliminar la extensión .php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ $1.php [L]

Esto permite a los usuarios acceder a example.com/about en lugar de example.com/about.php.

Mejores prácticas

  • Haz siempre una copia de seguridad de tu archivo .htaccess antes de hacer cambios.

  • Usa [L] para detener que se procesen más reglas una vez que se encuentre una coincidencia.

  • Prueba tus redirecciones con herramientas como httpstatus.io.

  • No mezcles demasiado Redirect y RewriteRule en el mismo bloque — prefiere RewriteRule por coherencia.

Conclusión

El archivo .htaccess es una poderosa herramienta de configuración que te brinda un control granular sobre tu sitio web basado en Apache — a menudo sin tocar los archivos principales de tu servidor. Ya sea que quieras redirigir páginas obsoletas, aplicar HTTPS, mejorar el SEO mediante URLs limpias o restringir el acceso a áreas sensibles, .htaccess hace posible todo esto con solo unas pocas líneas de código.

Comprender y dominar incluso un puñado de directivas .htaccess puede mejorar drásticamente el rendimiento, la seguridad y la usabilidad de tu sitio web. Te permite responder rápidamente a los cambios en la estructura del sitio, evitar enlaces rotos y mantener una experiencia coherente para tus visitantes.

Ejemplo práctico: redirigir URLs antiguas a nuevas

Imagina que has reestructurado tu blog y quieres redirigir el tráfico de una publicación desactualizada a una nueva ubicación:

Redirect 301 /old-blog-post https://www.example.com/blog/new-post

Esta simple línea garantiza que:

  • Los motores de búsqueda transfieren el valor SEO a la nueva URL

  • Los usuarios no llegan a una página 404

  • Las redirecciones ocurren instantáneamente con un código de estado 301 (permanente)