Eu gerencio um pequeno site em um ambiente LAMP de hospedagem compartilhada: isso basicamente significa que a única coisa que posso editar é um arquivo htaccess.
Eu queria adicionar suporte ao HSTS (e fiz), mas quando testei meu site aqui para elegibilidade ao pré-carregamento do HSTS, recebi o seguinte erro:
Erro: o HTTP redireciona para www primeiro
http://example
(HTTP) deve ser redirecionado imediatamente parahttps://example
(HTTPS) antes de adicionar o subdomínio www. No momento, o primeiro redirecionamento é parahttps://www.example.
O redirecionamento extra é necessário para garantir que qualquer navegador que suporte HSTS registre a entrada HSTS para o domínio de nível superior, não apenas para o subdomínio.
Então, suponho que devo redirecionar os usuários desta maneira:
http://example
(é isso que o usuário digita na barra de endereço do navegador)https://example
(nós o redirecionamos para a versão HTTPS do site)https://www.example
(nós o redirecionamos novamente para o subdomínio www)
Meu redirecionamento atual é feito desta maneira:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Tentei adicionar um redirecionamento antes da última linha, desta maneira:
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
mas recebi o erro "a página não está redirecionando corretamente" no navegador.
Então, qual é a maneira correta de redirecionar um usuário da versão http do site para o https e, finalmente, para o https com www? E: existem riscos?
fonte
Strict-Transport-Security
cabeçalho de resposta. Por exemplo, para definir isso no redirecionamento, você precisará usar oalways
argumento naHeader
diretiva. Respondi a uma pergunta relacionada na pilha do Pro Webmasters (pule a primeira parte da minha resposta sobreon
/off
), que entra em mais detalhes sobre a implementação do " pré-carregamento HSTS " no.htaccess
..htaccess
apenas para questões relacionadas (ServerFault supõe que você tenha controle total do servidor; nesse caso, você não faria isso.htaccess
). É discutivelmente mais fácil implementar isso na configuração do servidor usando<VirtualHost>
contêineres separados (já que você não precisa mexer com env vars e condições adicionais - é "mais limpo" e menos propenso a erros). Acho que não recomendaria o envio da "lista de pré-carregamento" se você tiver apenas acesso.htaccess
. (My 2c)