Como redirecionar www e forçar HTTPS pelo .htaccess

Atualizado em 21/09/2026 10 min Intermediário

O mesmo site pode responder em quatro endereços diferentes: com e sem www, em http e em https. Para o visitante dá no mesmo; para o buscador, são quatro versões do mesmo conteúdo dividindo a autoridade entre si.

Escolher uma e mandar as outras três para ela é uma das correções de SEO mais baratas que existem — e cabe em cinco linhas.

Antes de começar

  • Acesso ao Gerenciador de Arquivos do cPanel, ou FTP.
  • Certificado SSL ativo — veja o guia de SSL. Forçar HTTPS sem certificado deixa o site inacessível.

Encontre o arquivo

O .htaccess fica na raiz do site, dentro de public_html. Ele começa com ponto, então é oculto: no Gerenciador de Arquivos, ative Configurações → Mostrar arquivos ocultos.

Se não existir, crie um arquivo com esse nome exato.

Antes de editar, baixe uma cópia. Um erro de sintaxe neste arquivo derruba o site inteiro com erro 500 — e a mensagem não diz qual linha.

Force o HTTPS

Esta é a regra mínima, que todo site deve ter:

.htaccess
RewriteEngine On

# http -> https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Escolha entre www e sem www

Não existe opção melhor tecnicamente: o que importa é escolher uma e ser consistente. Use um dos dois blocos, nunca os dois.

.htaccess
# OPÇÃO A — tudo sem www (seudominio.com.br)
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

# OPÇÃO B — tudo com www (www.seudominio.com.br)
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteCond %{HTTP_HOST} ^(.+)$ [NC]
# RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]

Depois de escolher, atualize também o endereço do site nas configurações do WordPress e no Google Search Console, para tudo apontar para a mesma versão.

Junte tudo na ordem certa

Em site WordPress, as suas regras vão antes do bloco # BEGIN WordPress. O arquivo final fica assim:

.htaccess
RewriteEngine On

# http -> https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# www -> sem www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

# BEGIN WordPress
# ... não mexa daqui para baixo ...

O bloco do WordPress é reescrito pelo próprio sistema quando você salva os links permanentes. Por isso as suas regras ficam fora dele — dentro, seriam apagadas.

Redirecione páginas que mudaram de endereço

Se você renomeou uma página, mande a URL antiga para a nova em vez de deixar dar 404. Assim o visitante que chegou por um link antigo encontra o conteúdo, e a autoridade daquele endereço é transferida.

.htaccess
# página específica
Redirect 301 /pagina-antiga https://seudominio.com.br/pagina-nova

# uma seção inteira
RedirectMatch 301 ^/blog/(.*)$ https://seudominio.com.br/artigos/$1

Teste com atenção

Abra as quatro variações e confirme que todas terminam no mesmo lugar, com um único salto:

terminal
curl -sI http://seudominio.com.br | head -3
curl -sI http://www.seudominio.com.br | head -3
curl -sI https://www.seudominio.com.br | head -3
curl -sI https://seudominio.com.br | head -3

As três primeiras devem responder 301 apontando para a versão escolhida. A última, 200.

Se algo não funcionar

ERR_TOO_MANY_REDIRECTS

Há redirecionamento em dois lugares ao mesmo tempo — por exemplo no .htaccess e no Cloudflare, ou duas regras se contradizendo. Deixe em um lugar só. Usando Cloudflare, o modo de SSL precisa ser Full, nunca Flexible.

Erro 500 depois de editar

Erro de sintaxe. Restaure a cópia que você baixou. Se não tiver cópia, renomeie o arquivo para .htaccess-old — o site volta — e no WordPress salve os links permanentes para gerar um novo.

O redirecionamento não acontece

Confirme que o arquivo está em public_html, com o nome exato .htaccess, e que suas regras não estão depois de outra com a flag [L] que interrompe o processamento antes.

Hospedagem com Apache e .htaccess liberado

Controle total das regras de reescrita, com PHP-FPM e cache no servidor.

Ver planos de hospedagem

Perguntas frequentes

www ou sem www: qual escolher?

Tanto faz para o buscador. Sem www é mais curto e virou o padrão da maioria dos sites novos. Se o seu já é conhecido com www, mantenha — trocar por gosto pessoal não traz ganho e ainda exige atualizar links e ferramentas.

301 ou 302?

Use 301 para mudanças definitivas: ele diz ao buscador que o endereço novo é o oficial e transfere a autoridade. O 302 é temporário e não transfere — serve para manutenção ou teste.

O .htaccess deixa o site mais lento?

O impacto é desprezível para meia dúzia de regras. Fica perceptível apenas com centenas de redirecionamentos listados um a um — nesse caso, vale agrupar com RedirectMatch por padrão.

Continue por aqui