⚙️ .htaccess

Configura tu servidor Apache: redirecciones, seguridad, URL amigables y control de acceso desde un solo archivo.

Teoría Generador Diccionario Quiz 10/50

📖 Teoría

El archivo .htaccess (Hypertext Access) es un archivo de configuración utilizado por el servidor web Apache. Permite modificar la configuración del servidor de forma local sin editar el archivo principal httpd.conf.

  • El nombre empieza con un punto (.), lo que lo hace oculto en sistemas Unix/Linux.
  • Se coloca en el directorio raíz del sitio o en cualquier subdirectorio.
  • Las reglas aplican al directorio donde está y a sus subdirectorios.
  • Apache lo lee en cada solicitud HTTP (pequeño impacto en rendimiento).

💡 En producción con cPanel (Hostinger, mi.com.co), .htaccess es el archivo principal de configuración del servidor para tu sitio.

Redirección 301 — Permanente: Indica que la página se movió definitivamente. El SEO se transfiere a la nueva URL. Usar cuando se migra una página.

Redirección 302 — Temporal: El recurso se movió temporalmente. El SEO no se transfiere. Usar para mantenimiento o pruebas.

# Redirección 301 (permanente) Redirect 301 /pagina-vieja.html https://tudominio.com/pagina-nueva.html # Redirección 302 (temporal) Redirect 302 /promo https://tudominio.com/ofertas.html # Redirigir HTTP a HTTPS (obligatorio en 2025) RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Eliminar www del dominio RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

mod_rewrite es el módulo de Apache para reescribir URLs. Convierte URLs dinámicas con parámetros en URLs limpias y legibles.

Ejemplo: producto.php?id=5 → se muestra como /producto/5

RewriteEngine On RewriteBase / # /producto/5 → producto.php?id=5 RewriteRule ^producto/([0-9]+)/?$ producto.php?id=$1 [L,QSA] # /categoria/tecnologia → categoria.php?nombre=tecnologia RewriteRule ^categoria/([a-z0-9-]+)/?$ categoria.php?nombre=$1 [L,QSA]
FlagSignificado
[L]Last — última regla, detiene el procesamiento
[R=301]Redirect — redirección con código HTTP
[QSA]Query String Append — conserva parámetros GET
[NC]No Case — sin distinción de mayúsculas
[F]Forbidden — devuelve error 403

Se puede proteger archivos específicos con contraseña o restringir el acceso completamente usando .htaccess.

# Desactivar listado de archivos del directorio Options -Indexes # Bloquear acceso a un archivo específico <Files "config.php"> Order Allow,Deny Deny from all </Files> # Proteger extensiones sensibles <FilesMatch "\.(env|sql|log|bak)$"> Order Allow,Deny Deny from all </FilesMatch> # Proteger directorio con usuario y contraseña AuthType Basic AuthName "Área Restringida" AuthUserFile /ruta/absoluta/.htpasswd Require valid-user

Hotlinking: cuando otros sitios enlazan directamente a tus imágenes, consumiendo tu ancho de banda sin permiso.

# Bloquear una IP específica Order Allow,Deny Allow from all Deny from 192.168.1.100 # Prevenir hotlinking de imágenes RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com [NC] RewriteRule \.(jpg|jpeg|png|gif|webp|svg)$ - [F,NC] # Páginas de error personalizadas ErrorDocument 404 /errores/404.html ErrorDocument 403 /errores/403.html ErrorDocument 500 /errores/500.html

🛠️ Generador de Reglas .htaccess

Haz clic en una categoría para ver el código listo para usar en tu servidor.

# Selecciona una categoría arriba para ver el código .htaccess

📚 Diccionario

.htaccess
Archivo de configuración local de Apache. Controla redirecciones, seguridad y acceso sin tocar el servidor principal.
Apache
Servidor web de código abierto más usado en el mundo. Soporta módulos como mod_rewrite y mod_auth.
mod_rewrite
Módulo de Apache para reescribir URLs. Permite crear URL amigables y redirecciones avanzadas con expresiones regulares.
RewriteEngine
Directiva que activa (On) o desactiva (Off) el motor de reescritura de URLs en Apache.
RewriteRule
Define una regla de reescritura: patrón de URL origen → URL destino + flags de comportamiento.
RewriteCond
Condición que debe cumplirse para aplicar la RewriteRule siguiente. Se puede combinar varias.
Redirección 301
Redirección permanente. Transfiere el SEO a la nueva URL. Usar cuando se cambia una página de forma definitiva.
Redirección 302
Redirección temporal. No transfiere el SEO. Usar para redireccionamientos provisionales o de prueba.
Options -Indexes
Desactiva el listado automático de archivos del directorio cuando no hay un index. Mejora la seguridad.
AllowOverride
Directiva del httpd.conf principal que permite a .htaccess sobreescribir la configuración del servidor.
AuthType Basic
Activa la autenticación HTTP básica para proteger un directorio con usuario y contraseña en un formulario.
.htpasswd
Archivo que almacena usuarios y contraseñas encriptadas para la autenticación básica de Apache.
ErrorDocument
Directiva para definir páginas de error personalizadas para códigos HTTP como 404, 403 y 500.
Hotlinking
Práctica de enlazar imágenes o archivos de otro servidor directamente, consumiendo su ancho de banda sin permiso.
Flag [L]
Last: indica que esta es la última regla a aplicar. Detiene el procesamiento de las reglas siguientes.
Flag [R=301]
Redirect: realiza una redirección al navegador con el código HTTP indicado (301, 302, etc.).
Flag [NC]
No Case: hace que la comparación no sea sensible a mayúsculas o minúsculas en la URL.
Flag [QSA]
Query String Append: añade los parámetros GET originales de la URL a la URL reescrita.
%{HTTP_HOST}
Variable del servidor con el nombre del dominio de la petición actual (ej: tudominio.com).
%{HTTPS}
Variable del servidor. Vale "on" cuando la conexión usa SSL/TLS (protocolo seguro HTTPS).

🎬 Videos de Apoyo

¿Qué es .htaccess? — Introducción

El fichero .htaccess — 3 operaciones básicas

Tutorial completo del archivo .htaccess

Cómo hacer una redirección 301 en 1 minuto

📝 Cuestionario de Evaluación

10 preguntas aleatorias del banco de 50. Calificación de 0 a 100.