Você precisa de um certificado válido para example.com
e www.example.com
se for reescrever essas solicitações para www.example.com
(ou dois certificados separados que realizam isso). Não há como evitar isso.
Por motivos muito longos e complexos para entrar (envolve várias camadas de burocracia corporativa, fazendo com que alguém não compre um certificado SSL curinga que eu solicitei), tenho que configurar um domínio para redirecionar todas as solicitações para link - protocolo seguro com o subdomínio www
.
EDIT: O certificado SSL é válido apenas para o domínio www.xyz.com.
Então: link , link e link TODOS devem redirecionar para o link .
Meu .htaccess-fu é fraco na melhor das hipóteses e não consigo fazer isso funcionar. Nota: a hospedagem é no Media Temple, se isso faz diferença.
Até agora, meu arquivo .htaccess é assim:
RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://www.example.com/$1 [R,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
O link e o link estão redirecionando para link , então sim. No entanto, o link não está redirecionando para o link e está lançando uma página de aviso de segurança:
This is probably not the site you are looking for!
You attempted to reach example.com, but instead you actually reached a server identifying itself as www.example.com. This may be caused by a misconfiguration on the server or by something more serious. An attacker on your network could be trying to get you to visit a fake (and potentially harmful) version of example.com.
You should not proceed, especially if you have never seen this warning before for this site.
Qualquer ajuda para me ultrapassar esta última corcunda seria muito apreciada!
@ Simbus82 está certo sobre inverter as regras. Aqui está uma abordagem que é um pouco mais universal.
RewriteEngine On
# ensure www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ensure https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Inverta as regras; -)
estou usando isso e tive seu problema
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.it [NC]
RewriteRule (.*) http://www.site.it/$1 [L,R=301]
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://www.site.it/$1 [R=301,L]
Primeiro, reescreva para www e verifique https.
Esta é uma questão muito complexa. A maioria dos tutoriais na internet lhe dirá, como o Simbus82, apenas inverter algumas linhas de código dentro do htacess. Isso nem sempre funcionará (especialmente se você tiver um equipamento de descarregamento de SSL na frente do Apache)
Você tem algumas opções para resolver o problema:
Não consigo explicar por quê, mas parece que o protocolo SSL verifica o problema do certificado de domínio / subdomínio, antes de manipular a solicitação para o Apache.
Meu conhecimento sobre .htaccess também é fraco, mas e quanto a uma solução alternativa?
Você pode redirecionar todo o link para o link e tem um botão lá eles podem clicar em? Explique na página o que você está fazendo.
Você poderia até mesmo fazer um redirecionamento cronometrado em JavaScript ou algo assim?