.htaccess no WordPress: os 10 trechos mais úteis (com gerador)
O arquivo .htaccess controla HTTPS, cache, redirecionamentos e segurança do seu WordPress numa única linha errada de distância de um erro 500. Veja o que é o htaccess wordpress, o bloco que o próprio WordPress cria sozinho e os 10 trechos mais usados no dia a dia, prontos para copiar ou montar com um gerador gratuito.
Se você já abriu o gerenciador de arquivos da hospedagem e viu um arquivo chamado .htaccess na raiz do WordPress, provavelmente também já se perguntou se é seguro mexer nele. É uma pergunta justa: esse arquivo de configuração controla HTTPS, redirecionamentos, cache do navegador e até que arquivos ficam acessíveis publicamente, e uma vírgula fora do lugar pode derrubar o site inteiro com um erro 500. Este guia explica o que é o htaccess wordpress, como conviver com o bloco que o próprio WordPress mantém sozinho e traz os 10 trechos mais úteis para o dia a dia, cada um pronto para copiar. Quem preferir não editar nada manualmente pode montar o arquivo inteiro com cliques no nosso gerador gratuito de .htaccess.
O que é o arquivo .htaccess
O .htaccess (de "hypertext access") é um arquivo de configuração por diretório, lido pelo servidor web a cada requisição. Ele existe em servidores Apache e LiteSpeed, os dois motores mais comuns em hospedagem compartilhada de WordPress, e permite mudar comportamentos do servidor sem precisar de acesso root: forçar HTTPS, redirecionar URLs, ativar compressão, definir cache do navegador, bloquear certos arquivos e muito mais, tudo dentro de um único arquivo de texto na raiz do site.
Um detalhe que gera confusão: o .htaccess não existe no Nginx. Se o seu WordPress roda num servidor Nginx (comum em hospedagens mais recentes ou em VPS configurados manualmente), esse arquivo é simplesmente ignorado, e as mesmas regras precisam ser reescritas na configuração do servidor (nginx.conf ou num arquivo de site), com uma sintaxe totalmente diferente. Antes de copiar qualquer trecho deste artigo, vale confirmar com a hospedagem se o servidor é Apache/LiteSpeed ou Nginx.
Monte o seu com cliques: gerador gratuito de .htaccess
Marque os módulos que precisa (HTTPS, cache, segurança, redirecionamentos...) e o arquivo comentado aparece pronto para copiar ou baixar, direto no navegador, sem enviar nada para servidor nenhum.
O bloco próprio do WordPress: não mexa aqui dentro
Todo WordPress com permalinks amigáveis ativados (Configurações → Links permanentes) escreve automaticamente um bloco assim no topo do .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Esse bloco é o que faz uma URL como seusite.com/blog/meu-post/ chegar até o WordPress mesmo sem existir um arquivo físico com esse nome, encaminhando tudo para o index.php, que resolve a rota internamente. O WordPress reescreve esse trecho sozinho toda vez que você salva as configurações de permalink, então:
- Nunca edite o conteúdo entre os comentários
# BEGIN WordPresse# END WordPress. Se precisar mudar algo ali, é sinal de que o ajuste certo fica nas configurações de permalink, não no arquivo. - Adicione seus próprios trechos fora do bloco, antes ou depois dele. A convenção mais comum é colocar HTTPS, www/non-www e redirecionamentos antes do bloco do WordPress, e cache, GZIP e cabeçalhos de segurança depois.
- Se o bloco sumir ou ficar corrompido, basta reentrar em Configurações → Links permanentes e clicar em "Salvar alterações" sem mudar nada: o WordPress regenera o bloco sozinho.
Faça backup antes de editar
Baixe uma cópia do .htaccess atual por FTP antes de mexer nele. Um erro de sintaxe aqui, uma tag <IfModule> sem fechar, uma vírgula esquecida, derruba o site inteiro com erro 500. Se isso acontecer, basta subir de volta o arquivo de backup para o site voltar ao normal.
Os 10 trechos mais úteis do .htaccess no WordPress
Os trechos abaixo são os mesmos módulos usados na .htaccess de produção deste próprio site, testados em hospedagem Apache/LiteSpeed real. Cada um pode ser adicionado isoladamente, na ordem que preferir, sempre fora do bloco # BEGIN/END WordPress.
1. Forçar HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Redireciona qualquer acesso via http:// para https:// com um redirecionamento 301 permanente. Essencial depois de instalar um certificado SSL: sem essa regra, o site fica acessível nas duas versões ao mesmo tempo, o que confunde o Google sobre qual URL indexar.
2. www para non-www (ou o contrário)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
</IfModule>
Escolhe uma única forma canônica do domínio (com ou sem www.) e redireciona a outra para ela. Ter as duas versões respondendo sem redirect divide a autoridade de SEO entre dois endereços que, para o Google, são URLs diferentes. Na prática, esse trecho costuma ser combinado com o do HTTPS num único bloco, para economizar um salto de redirecionamento.
3. Redirecionamentos 301 individuais
Redirect 301 /pagina-antiga https://seudominio.com.br/pagina-nova
Redireciona permanentemente uma URL antiga para uma nova, útil depois de mudar um slug ou fundir dois posts. Manter dezenas dessas linhas direto no .htaccess funciona, mas fica difícil de organizar e não mostra estatística de cliques nem monitora erros 404. Se esse for o seu caso principal, vale ler nosso guia dedicado sobre redirecionamento 301 no WordPress, que cobre a diferença entre 301, 302, 307, 308 e 410 em detalhe.
4. Cache do navegador
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/css "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType image/webp "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
Diz ao navegador do visitante por quanto tempo pode reaproveitar cada tipo de arquivo sem baixar de novo. HTML fica sem cache (o conteúdo muda), CSS e JS por uma semana, imagens por um mês, e fontes por um ano, já que praticamente nunca mudam. Isso reduz visivelmente o tempo de carregamento em visitas repetidas, um dos fatores que também pesam no WordPress mais rápido.
5. Compressão GZIP
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
AddOutputFilterByType DEFLATE application/javascript application/json
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
Comprime arquivos baseados em texto (HTML, CSS, JS, JSON, SVG) antes de enviá-los ao navegador, reduzindo o tamanho transferido em boa parte dos casos. A maioria das hospedagens já ativa isso no nível do servidor, mas declarar explicitamente no .htaccess garante o comportamento mesmo que a configuração padrão mude.
6. Cabeçalhos de segurança
<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"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>
Esses quatro cabeçalhos HTTP reduzem uma boa fatia dos ataques mais comuns contra sites WordPress: X-Content-Type-Options impede que o navegador tente "adivinhar" o tipo de um arquivo, X-Frame-Options bloqueia que o site seja embutido num iframe alheio (clickjacking), Referrer-Policy limita quanta informação de navegação vaza para outros sites, e Permissions-Policy desativa APIs sensíveis do navegador por padrão. Um passo além, HSTS, força o navegador a sempre usar HTTPS mesmo sem redirect, mas só vale ativar depois que o certificado SSL estiver funcionando de forma confiável em 100% do site.
7. Página 404 personalizada
ErrorDocument 404 /404.html
Substitui a página de erro genérica do servidor por uma página própria, com a identidade visual do site e, idealmente, um link de volta para a home ou para uma busca. Uma linha só, mas melhora bastante a experiência de quem cai numa URL quebrada.
8. Proteção contra hotlink
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?seudominio\.com\.br/ [NC]
RewriteRule \.(jpe?g|png|gif|webp)$ - [F,NC]
</IfModule>
Impede que outros sites usem suas imagens diretamente pelo link, consumindo a banda da sua hospedagem sem enviar nenhum visitante para você. A regra libera acessos sem referrer (favoritos salvos, digitação direta) e bloqueia qualquer referrer que não seja o próprio domínio. Vale ajustar a lista de extensões conforme os formatos de imagem usados no site.
9. Desativar listagem de diretórios
Options -Indexes
Sem essa linha, acessar uma pasta do WordPress que não tem arquivo índice (como /wp-content/uploads/2026/07/) mostra a lista completa de arquivos ali dentro, direto no navegador. Uma linha simples que fecha uma pequena mas real brecha de exposição de arquivos.
10. Bloquear dotfiles
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} "!(^|/)\.well-known/" [NC]
RewriteRule "(^|/)\." - [F]
</IfModule>
Bloqueia o acesso via navegador a qualquer arquivo cujo nome comece com ponto, como .env, .git ou arquivos de backup deixados por engano na raiz do site. A pasta .well-known fica de fora da regra de propósito, porque é usada por processos legítimos como a validação de certificados SSL.
Monte tudo isso sem editar um único caractere
Combinar os 10 trechos acima manualmente funciona, mas é fácil esquecer uma tag de fechamento ou digitar um caminho errado, e cada erro de sintaxe no .htaccess pode significar o site inteiro fora do ar até corrigir. Para quem prefere não arriscar, o gerador gratuito de .htaccess da hafenstudios monta o arquivo inteiro com cliques: marque os módulos que precisa, preencha os campos (domínio, caminhos de redirecionamento, página 404), e um arquivo comentado e pronto para uso aparece na hora, direto no navegador, sem enviar nada para nenhum servidor externo. É possível copiar o resultado ou baixar como arquivo .htaccess já formatado.
Como testar sem quebrar o site
Depois de colar um trecho novo no .htaccess, o teste mais simples é abrir o site numa aba anônima e navegar por duas ou três páginas diferentes. Se aparecer erro 500, o problema quase sempre está no trecho que acabou de ser adicionado: remova-o, teste de novo para confirmar que o site volta ao normal, e revise a sintaxe com calma antes de tentar de novo. Ter o arquivo de backup à mão (ponto anterior) é o que transforma esse processo de "coração na mão" em rotina de dois minutos.
Redirecionamentos sem tocar no .htaccess
Para redirecionamentos 301, 302, 307, 308 e 410 com estatística de cliques e monitor de erros 404, o Linkjet cuida disso numa tela do wp-admin, sem editar arquivo nenhum no servidor, gratuito e sob GPLv2.
Perguntas frequentes
O que é o arquivo .htaccess no WordPress?
É um arquivo de configuração lido pelo servidor Apache ou LiteSpeed a cada requisição, usado para controlar HTTPS, redirecionamentos, cache do navegador, compressão e regras de segurança sem precisar de acesso root à hospedagem. No WordPress, ele também guarda o bloco que traduz URLs amigáveis (permalinks) em chamadas reais para o index.php.
Posso editar o bloco # BEGIN WordPress / # END WordPress?
Não é recomendado. Esse bloco é gerado e regenerado automaticamente pelo próprio WordPress toda vez que as configurações de permalink são salvas, então qualquer edição manual dentro dele tende a ser sobrescrita ou causar comportamento inesperado. Trechos personalizados devem ficar sempre fora desse bloco, antes ou depois dele.
O Nginx também usa .htaccess?
Não. O .htaccess é uma funcionalidade específica do Apache e do LiteSpeed. Servidores Nginx ignoram completamente esse arquivo, e as mesmas regras (HTTPS, redirecionamentos, cache, segurança) precisam ser reescritas diretamente na configuração do servidor, com uma sintaxe diferente da usada aqui.
Um erro no .htaccess pode derrubar o site?
Sim, e é um dos erros mais comuns em WordPress autogerenciado. Uma tag <IfModule> sem fechar ou uma regra mal escrita costuma resultar em erro 500 no site inteiro, não só na página que estava sendo editada. Por isso vale sempre fazer backup do arquivo atual antes de qualquer alteração, para poder restaurar rapidamente via FTP se algo der errado.
O gerador de .htaccess é gratuito e seguro?
Sim. O gerador roda inteiramente no navegador, sem enviar nenhum dado para servidor externo, e o resultado é um arquivo comentado, pronto para copiar ou baixar. É gratuito e não exige cadastro nem instalação de nada.
Se o seu WordPress também precisa de ajuda em outras frentes, veja como deixar o WordPress mais rápido além do cache do .htaccess, ou como organizar redirecionamentos em escala com o guia de redirecionamento 301 no WordPress.