Generador de .htaccess para Apache

Genera reglas .htaccess para Apache: forzar HTTPS, añadir o quitar www, redirecciones 301, páginas de error, gzip, caché del navegador, cabeceras de seguridad y más.

El código puede ser 301, 302, 303, 307, 308 o 410 (eliminado). La ruta nueva puede ser una URL completa.

.htaccess
<IfModule mod_rewrite.c>
  RewriteEngine On
  # Redirect HTTP to HTTPS
  RewriteCond %{HTTPS} off
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

# Redirects (mod_alias)
Redirect 301 /old-page /new-page
Redirect 301 /blog/2019 /blog

# Custom error pages
ErrorDocument 404 /404.html

# Disable directory listings
Options -Indexes

# Block access to hidden files such as .env and .git
<FilesMatch "^\.">
  Require all denied
</FilesMatch>
RedirectMatch 404 /\.git

# Security headers
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

# Compress text responses
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
  AddOutputFilterByType DEFLATE application/javascript application/json application/xml application/rss+xml
  AddOutputFilterByType DEFLATE image/svg+xml font/ttf font/otf
</IfModule>

# Browser caching
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 month"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType text/css "access plus 1 year"
  ExpiresByType application/javascript "access plus 1 year"
  ExpiresByType text/javascript "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType image/avif "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType image/x-icon "access plus 1 year"
  ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
Para Apache 2.4 con mod_rewrite, mod_alias, mod_headers, mod_deflate y mod_expires (los bloques van dentro de IfModule cuando es posible). Pruébalo antes en un servidor de pruebas: un error de sintaxis en .htaccess provoca un HTTP 500 en toda la carpeta. Nginx no lee .htaccess.

¿Qué es Generador de .htaccess?

Esta herramienta genera un archivo .htaccess listo para usar en Apache 2.4. Marca las funciones que necesitas (redirección a HTTPS, host canónico con o sin www, HSTS, listado de directorios desactivado, protección de archivos ocultos, compresión gzip, caché del navegador, cabeceras de seguridad básicas) y añade tus propias redirecciones 301/302/410 y páginas de error personalizadas.

Cómo usar Generador de .htaccess

  1. Marca las opciones que necesitas y elige cómo tratar el www.
  2. Introduce las redirecciones como /old-path /new-path, opcionalmente seguidas de un estado (301, 302, 303, 307, 308 o 410).
  3. Introduce las rutas de las páginas 404 y 500 personalizadas.
  4. Copia o descarga el resultado como .htaccess y pruébalo primero en un servidor de staging.

Ejemplo

Entrada
Force HTTPS, remove www, redirect /old-page → /new-page
Salida
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Redirect 301 /old-page /new-page

Cuándo usar Generador de .htaccess

Úsalo en hosting compartido o servidores Apache en los que no puedas editar la configuración principal del servidor. En Nginx, con los ajustes propios de LiteSpeed, en Cloudflare o en una CDN, usa su configuración: Nginx ignora por completo .htaccess. Un error de sintaxis provoca un HTTP 500 en todo el directorio, así que prueba siempre.

Cómo funciona Generador de .htaccess

Las reglas de HTTPS y www usan mod_rewrite (RewriteCond %{HTTPS} off y condiciones de host) dentro de <IfModule mod_rewrite.c>; la redirección de www usa directamente https cuando se fuerza HTTPS, lo que evita una cadena de dos saltos. Las redirecciones de rutas usan líneas Redirect de mod_alias (Redirect gone para 410). La compresión usa mod_deflate; la caché, mod_expires con duraciones largas para recursos estáticos y ninguna para HTML; y las cabeceras, mod_headers con Header always set. Los archivos que empiezan por punto se deniegan con <FilesMatch "^\."> y RedirectMatch 404 /\.git.

Casos de Uso Comunes

  • Forzar HTTPS y un único host sin www tras instalar un certificado.
  • Redirigir las URL antiguas tras rediseñar un sitio.
  • Activar la compresión y la caché para acelerar un WordPress en hosting compartido.
  • Bloquear el acceso a los archivos .env y .git.

Preguntas Frecuentes

¿Por qué obtengo un error 500 al subir el .htaccess?

Normalmente porque un módulo necesario no está activado o porque AllowOverride no permite una directiva. Revisa el registro de errores de Apache.

¿Debo activar HSTS?

Solo cuando todo el sitio y todos los subdominios funcionen por HTTPS: los navegadores rechazarán HTTP sin cifrar durante el periodo max-age.

¿Funciona .htaccess en Nginx?

No. Nginx no lee .htaccess; las reglas deben traducirse al bloque server.

Explora más categorías