POP HOSTING

Como redirecionar HTTPS para HTTP ou o contrário, exceto uma pasta imprimir

  • redirecionar https para http, exceto pasta, rewritecond, htaccess, redirecionamento 301, forçar https
  • 0

Regras prontas de htaccess para forçar HTTPS no site todo menos uma pasta, ou mandar HTTPS para HTTP com exceção, e os cuidados de cada caso.

  • Tempo: 10 min
  • Nível: Intermediário
  • Vale para: hospedagem cPanel com LiteSpeed ou Apache (mod_rewrite)
  • Atualizado: outubro de 2026

Às vezes você precisa que uma pasta do site se comporte diferente do resto: um sistema antigo que só funciona em HTTP, uma API chamada por um equipamento que não fala HTTPS, ou o contrário, só a área de login e pagamento com HTTPS obrigatório. Tudo isso se resolve com RewriteCond no arquivo .htaccess da raiz do site.

Antes de começar

  • Faça uma cópia do .htaccess atual. No Gerenciador de Arquivos do cPanel, ative Show Hidden Files (dotfiles) em Settings para enxergá-lo.
  • Teste com redirecionamento temporário. Nos exemplos abaixo, use R=302 enquanto testa e só troque para R=301 quando estiver tudo certo. O navegador guarda o 301 em cache e um erro de regra fica "grudado" até você limpar o cache.
  • Em WordPress, coloque as regras acima da linha # BEGIN WordPress.

Forçar HTTPS no site inteiro, exceto uma pasta

É o caso mais comum hoje. Troque pasta-livre pelo nome da sua pasta:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/pasta-livre/ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Leitura da regra: se o acesso chegou sem HTTPS e o endereço não começa com /pasta-livre/, redirecione para a mesma página em HTTPS. Quem acessa http://seudominio.com.br/pasta-livre/ continua em HTTP.

Para liberar mais de uma pasta, acrescente uma linha RewriteCond para cada uma, ou junte numa só:

RewriteCond %{REQUEST_URI} !^/(pasta-livre|api-antiga|\.well-known)/ [NC]

O \.well-known do exemplo é a pasta usada na validação de certificados SSL. Deixá-la fora de qualquer redirecionamento evita surpresa na renovação automática.

Redirecionar HTTPS para HTTP, exceto uma pasta

É o pedido original deste artigo, comum em sites antigos. A regra é o espelho da anterior:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/loja/ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Tudo o que chegar em HTTPS volta para HTTP, menos o que estiver em /loja/.

Atenção: mandar visitantes de HTTPS para HTTP quase nunca é uma boa ideia em 2026. O navegador mostra "Não seguro", o Google prefere páginas HTTPS e, se o domínio já usou HSTS, o navegador nem obedece o redirecionamento. Além disso, o certificado continua precisando ser válido: o visitante só chega à sua regra depois que a conexão HTTPS foi aceita. Se o motivo é um recurso que só existe em HTTP (um player, um iframe, uma imagem), resolva conseguindo a versão HTTPS desse recurso.

Só uma pasta em HTTPS e o resto em HTTP

Quando a área de login ou de pagamento precisa de HTTPS e o restante do site ainda não está pronto, são duas regras: uma empurra a pasta para HTTPS e a outra tira o resto.

RewriteEngine On

# /area-segura/ sempre em HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/area-segura/ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# o resto do site em HTTP
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/area-segura/ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Cuidado com imagens, CSS e scripts que a pasta segura carrega de fora dela: se vierem por HTTP, o navegador acusa conteúdo misto. Pastas como /css/, /js/ e /imagens/ podem precisar entrar na exceção da segunda regra.

Problemas comuns

ERR_TOO_MANY_REDIRECTS

Uma regra manda para HTTPS e outra (no cPanel, num plugin ou na Cloudflare) manda de volta. Desligue o Force HTTPS Redirect do domínio no cPanel quando for usar exceções no .htaccess, e se o site usa Cloudflare, não use o modo SSL Flexible.

A exceção não pega

Confira a barra e as maiúsculas: ^/Loja/ é diferente de ^/loja/ sem o [NC], e ^/loja/ não casa com /loja sem a barra final. Para aceitar as duas formas, use ^/loja(/|$).

Continuo sendo redirecionado mesmo depois de apagar a regra

É o cache do 301 no navegador. Teste numa janela anônima ou limpe o cache.

Quer SSL grátis sem se preocupar com renovação? A hospedagem cPanel da POP Hosting tem AutoSSL, que emite e renova os certificados dos seus domínios.

Esta resposta lhe foi útil?
« Retornar