Tutorial

Forçar HTTPS .htaccess para sites WordPress

Este tutorial visa fornecer o código necessário para forçar HTTPS .htaccess, também conhecido como Certificação SSL que protege os usuários de um site criptografando a comunicação entre o usuário e o site WordPress. Agora que você sabe sobre o que é esse artigo, vamos ver porque ele é importante.

Se é importante usar o SSL, devo forçar HTTPS no .htaccess?

A resposta simples é sim! A resposta complexa é se seu site não é genérico, como a maioria, talvez seja sábio contratar um Programador WordPress para fazer esta alteração no arquivo .htacess de seu site. Há casos que forçar o SSL pode gerar erro 500 no site por criar um redirecionamento eterno. Se isso acontecer, basta apagar o código que inseriu no .htaccess e enviar novamente para o site (assegure-se de editar sempre e somente via (s)FTP e nunca pelo editor dentro do WordPress).

Quem pode querer usar esse código para forçar HTTPS pelo .htaccess?

  • Quem quer forçar HTTPS (SSL) à navegação do seu site;
  • Quem quer padronizar a URL do site para seudomínio.com.br (mesmo que digitem com www);
  • Sites com servidor Apache;
  • Administradores com acesso ao arquivo .htaccess do site via SFTP ou FTP;
  • Sites WordPress.

Como forçar HTTPS .htaccess

Veja o código abaixo. Ele contempla a resposta que você procurava ao entrar nesta página:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
.htaccess

Explicação do código acima:

Primeiro, por segurança, assegure-se de envolver o código em IfModule para não quebrar o site caso o módulo mod_rewrite seja removido do servidor. Esta é uma verificação de segurança. O código interno só será executado se o módulo mod_rewrite do Apache estiver ativo no servidor. Isso evita erros 500 (Internal Server Error) caso o módulo não esteja disponível. (linhas 1 e 9)

<IfModule mod_rewrite.c>
...
</IfModule>

Informe que vai fazer alterações de rewrite, ligando-o (on). Ativa o motor de reescrita de URLs, que é a ferramenta que nos permite manipular os endereços. [linha 2]

RewriteEngine On

Se o protocolo HTTPS não estiver ligado [linhas 4 e 7]

RewriteCond %{HTTPS} !=on

Envie para https://seudominio.com/ como forma de redirecionamento permanente. Esta é a regra de reescrita que faz a mágica acontecer.

  • ^(.*)$: É uma expressão regular (regex) que captura a URL inteira que o visitante tentou acessar.
  • https://%{HTTP_HOST}%{REQUEST_URI}: É o destino do redirecionamento.
    • https://: Força o protocolo seguro.
    • %{HTTP_HOST}: É a variável que contém o domínio do seu site (ex: www.seusite.com.br). Usar esta variável torna o código portátil, sem precisar “chumbar” o domínio no código.
    • %{REQUEST_URI}: É a variável que contém o restante da URL após o domínio (ex: /pagina/contato/). Isso garante que o visitante seja levado para a página correta, só que na versão HTTPS.
  • [L,R=301]: São as “flags” que controlam o comportamento da regra.
    • R=301: Especifica que este é um redirecionamento permanente (código 301). Isso é crucial para SEO, pois informa aos motores de busca que a versão HTTPS é a canônica e que eles devem transferir toda a relevância da versão HTTP para a nova.
    • L: Significa “Last”. Indica ao Apache que esta é a última regra a ser processada nesta requisição. Isso previne que outras regras de reescrita interfiram e causem loops de redirecionamento ou outros comportamentos inesperados.

[linhas 5 e 8]

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Local de Instalação do Site

Anteriormente, eu utilizava um código para sites instalado na pasta raiz e outro para sites instalados em uma pasta dentro da pasta raiz de outro site (é uma prática comum para quem quer manter vários sites dentro de um mesmo domínio).

No entanto, já não uso mais assim e esta seção abaixo pode ser ignorada. A deixo aqui, apenas para histórico.

Para Sites Comuns (instalados na pasta public_html ou www de seu servidor):

Se sua instalação foi feita do jeito mais comum, você pode apagar as linhas 3, 6,7 e 8 do código inicialmente apresentado acima. O resultado seria o seguinte código:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Para Sites Instalados em Diretórios:

Caso sua instalação do WordPress esteja dentro de um diretório, apague a tralha (jogo da velha – #) das linhas 7 e 8 e apague as linas 3, 4, 5 e 6. O resultado seria o seguinte código:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/PASTA/$1 [R=301,L]
</IfModule>
Atenção!

Assegure-se de alterar o termo “PASTA” no código acima para o nome da pasta em qual o site WordPress está instalado.

Conclusão:

Forçar HTTPS .htaccess é quase um default hoje em dia. Até para o SEO é melhor que o site use HTTPS. Editar diretamente o arquivo .htaccess é um procedimento relativamente fácil, mas com grande potencial para quebrar o site. Sempre faça back-ups antes de editar arquivos importantes.

Rafa Carvalhido

Rafa é Programador Web especializado em WordPress + WooCommerce e escritor nos tempos livres. Criação de sites, otimizações de velocidade e SEO, e criação de plugins são algumas de suas funções rotineiras que lhe permitem falar com propriedade quando o assunto é WordPress.

Share
Published by
Rafa Carvalhido

Recent Posts

Reordenar campos de checkout do WooCommerce 2024

Neste artigo, você aprenderá como a página de checkout do WooCommerce é construída e como…

1 ano ago

O que são plugins drop-in do WordPress?

O WordPress usa os plugins drop-in, um recurso oculto, para substituir, adicionar ou aprimorar um…

2 anos ago

O WordPress é Gratuito?

Descubra se o WordPress é realmente gratuito e aprenda sobre os custos associados à criação…

2 anos ago

Resolver o bug ‘Editar Endereço’ em temas que usam WooCommerce (como Woodmart)

Fala Profissional! Neste tutorial, eu, Rafa Carvalhido vou ajudar a resolver um bug específico que…

2 anos ago

Guia Visual de Hooks do WooCommerce: Página de Checkout

Encontre os hooks do WooCommerce na página de produto rapidamente! Este guia prático mostra de…

2 anos ago

Como configurar a nova API dos Correios no plugin WooCommerce

Fala Profissional! Você está buscando integrar a nova API dos Correios com seu e-commerce? Está…

2 anos ago