Gerador de .htaccess para Apache

Gere regras .htaccess para Apache: forçar HTTPS, com ou sem www, redirecionamentos 301, páginas de erro, gzip, cache, cabeçalhos de segurança e bloqueio de dotfiles.

O status pode ser 301, 302, 303, 307, 308 ou 410 (removido). O caminho novo pode ser uma 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 com mod_rewrite, mod_alias, mod_headers, mod_deflate e mod_expires (blocos dentro de IfModule quando possível). Teste antes em um servidor de homologação – um erro de sintaxe no .htaccess gera HTTP 500 na pasta inteira. O Nginx não lê .htaccess.

O que é Gerador de .htaccess?

Esta ferramenta gera um arquivo .htaccess pronto para uso no Apache 2.4. Marque os recursos de que precisa – redirecionamento para HTTPS, host canônico com ou sem www, HSTS, listagem de diretórios desativada, proteção de arquivos ocultos, compressão gzip, cache do navegador, cabeçalhos básicos de segurança – e acrescente os seus próprios redirecionamentos 301/302/410 e páginas de erro personalizadas.

Como usar Gerador de .htaccess

  1. Marque as opções de que precisa e escolha como o www deve ser tratado.
  2. Digite os redirecionamentos como /old-path /new-path, opcionalmente seguidos de um status (301, 302, 303, 307, 308 ou 410).
  3. Digite os caminhos das páginas 404 e 500 personalizadas.
  4. Copie ou baixe o resultado como .htaccess e teste-o primeiro em um servidor de homologação.

Exemplo

Entrada
Force HTTPS, remove www, redirect /old-page → /new-page
Saída
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

Quando usar Gerador de .htaccess

Use em hospedagem compartilhada ou em servidores Apache em que você não pode editar a configuração principal. No Nginx, nas configurações próprias do LiteSpeed, no Cloudflare ou em uma CDN, use a configuração deles – o Nginx ignora o .htaccess completamente. Um erro de sintaxe causa HTTP 500 no diretório inteiro, então sempre teste.

Como funciona Gerador de .htaccess

As regras de HTTPS e de www usam o mod_rewrite (RewriteCond %{HTTPS} off e condições de host) dentro de <IfModule mod_rewrite.c>; o redirecionamento de www usa https diretamente quando o HTTPS é forçado, evitando uma cadeia de dois saltos. Os redirecionamentos de caminhos usam linhas Redirect do mod_alias (Redirect gone para 410). A compressão usa o mod_deflate, o cache o mod_expires, com validades longas para arquivos estáticos e nenhuma para o HTML, e os cabeçalhos o mod_headers com Header always set. Os dotfiles são bloqueados com <FilesMatch "^\."> e RedirectMatch 404 /\.git.

Casos de Uso Comuns

  • Forçar HTTPS e um único host sem www depois de instalar um certificado.
  • Redirecionar URLs antigas depois de um redesenho do site.
  • Ativar compressão e cache para acelerar um site WordPress em hospedagem compartilhada.
  • Bloquear o acesso a arquivos .env e .git.

Perguntas Frequentes

Por que recebo um erro 500 depois de enviar o .htaccess?

Normalmente um módulo necessário não está ativado ou uma diretiva não é permitida pelo AllowOverride. Confira o log de erros do Apache.

Devo ativar o HSTS?

Só quando o site inteiro e todos os subdomínios funcionarem por HTTPS – os navegadores vão recusar HTTP simples durante o período do max-age.

O .htaccess funciona no Nginx?

Não. O Nginx não lê o .htaccess; as regras precisam ser traduzidas para o bloco server.

Explore mais categorias