Generador de .htaccess

Crea redirecciones, caché y reglas de seguridad .htaccess para Apache con control de conflictos

Opciones

URL canónica
Host canónico
Barra final

/blog/index.html redirige a /blog/.

Redirecciones propias
Redirecciones: 0

Aún no hay redirecciones propias. Añade una o usa el pegado masivo.

.htaccess generado

# Generated by the CodingTool.dev .htaccess Generator for Apache 2.4.
# Needs AllowOverride AuthConfig FileInfo Indexes Options (or All); Apache answers 500 for directives it does not allow.
# Place this file in the document root. Test on a staging site before going live.

# Disable directory listings.
Options -Indexes

# Deny access to .htaccess, .htpasswd and other .ht files.
<FilesMatch "^\.ht">
  Require all denied
</FilesMatch>

# Deny backup, dump and editor swap files such as .bak, .old, .sql, .swp and ~ copies.
<FilesMatch "(\.(bak|old|sql|swp)|~)$">
  Require all denied
</FilesMatch>

<IfModule mod_rewrite.c>
  RewriteEngine On

  # Block dotfiles and dot-folders such as .env and .git; keep /.well-known/ reachable.
  RewriteCond %{REQUEST_URI} !(^|/)\.well-known/
  RewriteRule (^|/)\. - [F]

  # Force HTTPS: redirect every HTTP request to the same host over HTTPS.
  RewriteCond %{HTTPS} !=on
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

<IfModule mod_headers.c>
  # Basic security headers. Adjust Permissions-Policy if your site uses these features.
  Header always set X-Content-Type-Options "nosniff"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>

# Compress text responses. AddOutputFilterByType needs mod_filter in Apache 2.4.
<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
    # Text and markup
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
    # Scripts and data
    AddOutputFilterByType DEFLATE text/javascript application/javascript application/json application/ld+json application/manifest+json
    # Feeds and XML
    AddOutputFilterByType DEFLATE application/xml application/rss+xml application/atom+xml
    # SVG and uncompressed fonts
    AddOutputFilterByType DEFLATE image/svg+xml font/ttf font/otf application/vnd.ms-fontobject
  </IfModule>
</IfModule>

# Browser caching (conservative): short lifetimes that are safe without versioned file names.
<IfModule mod_expires.c>
  ExpiresActive On
  # HTML and data: always revalidate
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType application/json "access plus 0 seconds"
  ExpiresByType application/ld+json "access plus 0 seconds"
  ExpiresByType application/xml "access plus 0 seconds"
  ExpiresByType text/xml "access plus 0 seconds"
  # Feeds
  ExpiresByType application/rss+xml "access plus 1 hour"
  ExpiresByType application/atom+xml "access plus 1 hour"
  # CSS and JavaScript
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType application/javascript "access plus 1 week"
  # Web app manifest
  ExpiresByType application/manifest+json "access plus 1 week"
  # Images
  ExpiresByType image/avif "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 month"
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 month"
  # Fonts
  ExpiresByType font/woff "access plus 1 month"
  ExpiresByType font/woff2 "access plus 1 month"
  ExpiresByType font/ttf "access plus 1 month"
  ExpiresByType font/otf "access plus 1 month"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
  # Audio and video
  ExpiresByType audio/mpeg "access plus 1 month"
  ExpiresByType audio/ogg "access plus 1 month"
  ExpiresByType video/mp4 "access plus 1 month"
  ExpiresByType video/webm "access plus 1 month"
</IfModule>

.htaccess solo funciona donde la opción AllowOverride de Apache permite estas directivas.

Se guarda como htaccess.txt porque los navegadores quitan el punto inicial. Renómbralo a .htaccess en el servidor.

Hallazgos

Sin conflictos
Errores: 0 · Advertencias: 0 · Redirecciones: 0

Notas (3)

  • Nota: Detrás de un balanceador o CDN que termina TLS, %{HTTPS} está desactivado y la regla HTTPS puede entrar en bucle. Consulta antes con tu proveedor.

  • Nota: Requiere AllowOverride AuthConfig, FileInfo, Indexes, Options (o All). Una directiva fuera del conjunto permitido hace que Apache responda 500.

  • Nota: Los bloques de mod_rewrite, mod_headers, mod_deflate, mod_filter, mod_expires se omiten sin aviso cuando ese módulo no está cargado.

En este archivo

  • Opciones del servidor
  • Protección de archivos
  • Reglas de reescritura
  • Cabeceras de respuesta
  • Compresión
  • Caché del navegador

Errores: 0 · Advertencias: 0 · Redirecciones: 0

Qué genera

El generador escribe un archivo .htaccess para Apache 2.4 con las necesidades habituales de redirección, rendimiento y seguridad: forzar HTTPS, un único host canónico, limpieza de barras finales y de index.html, redirecciones 301/302/307/308 propias, compresión gzip, ajustes de caché Expires, protección del listado de carpetas y de archivos ocultos, cabeceras de seguridad básicas, HSTS opcional y páginas de error propias. Cada sección lleva un comentario y el orden es siempre el mismo, así los cambios se leen con facilidad.

Comprobación de conflictos

Antes de escribir una redirección se comprueba si el origen está mal formado, si el destino usa un protocolo inseguro o inesperado, si hay duplicados, redirecciones a sí mismas, bucles de A a B y de vuelta a A, o cadenas que cuestan un salto extra. Las reglas que crearían un bucle o que nunca se ejecutarían se dejan fuera del archivo y aparecen en Hallazgos. El host canónico y la barra final son opciones únicas, así que no se pueden combinar reglas contradictorias como añadir y quitar www.

Detalles de Apache que importan

Todas las reglas de reescritura comparten un único bloque IfModule mod_rewrite con un solo RewriteEngine On. HTTPS y el cambio de host se resuelven en una sola redirección, las reglas de barra final omiten archivos y carpetas reales, y las redirecciones de barra o de índice solo se aplican a peticiones GET y HEAD. El control de acceso usa Require all denied y nunca la sintaxis obsoleta Order y Deny. Los bloques que dependen de un módulo van dentro de IfModule, de modo que un módulo ausente omite el bloque sin romper el sitio.

Antes de publicar

.htaccess solo funciona donde la opción AllowOverride del servidor permite estas directivas; si no, Apache responde 500. Coloca el archivo en la raíz del documento, porque las rutas de las redirecciones propias son relativas a ella. Detrás de un proxy o CDN que termina TLS, la regla HTTPS no ve el esquema original y puede entrar en bucle. Activa HSTS solo cuando HTTPS funcione en todas partes y empieza con un max-age corto. Los navegadores guardan la descarga como htaccess.txt; renómbrala a .htaccess en el servidor. Todo se ejecuta en tu navegador y no se sube nada.

CodingTool ya está oficialmente disponible en

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch