Olá,

Recentemente necessitei implantar um certificado SSL para que uma aplicação de um cliente tivesse conexão segura em seu site, no entanto, o HTTPS é somente necessário para operações com o carrinho de compras e/ou tráfego de dados confidenciais, não sendo necessário, por exemplo, para leitura de textos, etc.

O método mais inteligente é você sempre forçar o SSL [HTTPS] para as páginas de autenticação, cadastros e carrinho de compras e sempre forçar o HTTP (sem SSL) às demais páginas.

Tive de ler toda a documentação do mod_rewrite do Apache, mas tudo bem:

[php]RewriteEngine On

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(carrinho|login) [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/php]

O que o código acima, inserido no .htaccess da raiz da aplicação, faz? Se o usuário digitar https://www.dominio.com.br/produto/listar/32, por exemplo, automaticamente ele será redirecionado para a mesma url com HTTP (sem SSL), pois não se trata de uma url que contenha “/carrinho” ou “/login”.

Ficou faltando a url principal sempre ser forçada para HTTP em vez de HTTPS, pois nela, não há conteúdo confidencial para ser obrigatório o uso do SSL, logo adicionei o código:

[php]RewriteCond %{HTTPS} on
RewriteCond %{QUERY_STRING} !^ACT= [NC]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond $1 ^$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/php]

Agora, depois de inserir os dois códigos acima, vamos para o arquivo de configuração do VirtualHost no Apache e adicionar as seguintes linhas:

[php]Redirect permanent /identificacao/novo-cadastro https://www.dominio.com.br/identificacao/novo-cadastro
Redirect permanent /carrinho https://www.dominio.com.br/carrinho[/php]

Bom, com o código acima no arquivo de configuração do Apache, toda vez que o usuário entrar no carrinho ou for se identificar, ele será forçado para o HTTPS e, nas demais páginas, será forçado para HTTP.

Abraços a todos.

Author

Rodrigo Calado é sócio-fundador e CTO do Gran Cursos Online. Graduado em Gestão da Tecnologia da Informação, pós-graduando em Governança de TI pela Universidade Católica de Brasília e cursou MBA em Gestão e Empreendedorismo pela FGV. Possui convicta paixão pela área de tecnologia, educação digital, concursos públicos e empreendedorismo.

Write A Comment