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.
<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>
¿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
- Marca las opciones que necesitas y elige cómo tratar el www.
- Introduce las redirecciones como
/old-path /new-path, opcionalmente seguidas de un estado (301, 302, 303, 307, 308 o 410). - Introduce las rutas de las páginas 404 y 500 personalizadas.
- Copia o descarga el resultado como .htaccess y pruébalo primero en un servidor de staging.
Ejemplo
Force HTTPS, remove www, redirect /old-page → /new-page
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.