¿Cómo puedo redirigir y reescribir mis URLs con un archivo .htaccess?
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.html2. Redirección temporal 302
Úsalo cuando la redirección sea temporal.
Redirect 302 /temp-page.html https://yourdomain.com/coming-soon.html3. 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=123Puedes usar:
https://example.com/product/1231. 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:
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)


