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