Se você quiser que http://www.mywebsite.com/
seja sempre enviado acima de https
, use redirect
porque usar mod_rewrite
não é o comportamento recomendado.
De acordo com a Página de wiki do Redirect Request to SSL do Apache:
Ao usar SSL, você frequentemente terá pelo menos dois hosts virtuais: um na porta 80 para atender a solicitações comuns e um na porta 443 para servir SSL. Se você deseja redirecionar os usuários do site não seguro para o site SSL, você pode usar uma diretiva de Redirecionamento comum dentro do VirtualHost não seguro
Então, tente adicionar esta diretiva no seu VirtualHost não seguro:
Redirect permanent / https://www.mywebsite.com/
Se você quiser mesmo assim, use rewrite
rule, você deve adicionar essas linhas em VirtualHost
não seguras:
RewriteEngine On
# This will enable the Rewrite capabilities
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/ [R,L]
# This rule will redirect users from their original location, to the same location but using HTTPS.
# i.e. http://www.mywebsite.com/foo/ to https://www.mywebsite.com/foo/
como descrito na página wiki do HTTP para HTTPS Apache.
Sua configuração não funciona, porque não está definido um VirtualHost não seguro (geralmente na porta 80) que lida com solicitações http e as redireciona para o SecureHost seguro.
Tente adicionar estas linhas:
<VirtualHost *:80>
ServerName dev.dom1.com
Redirect permanent / https://dev.dom1.com/
</VirtualHost>
Nesse caso, você não precisa de um DocumentRoot
porque esse VirtualHost
está redirecionando tudo.
Rewrite
mostrada em seu arquivo de configuração protege o VirtualHost
do acesso seguro pelo protocolo http
, por exemplo, http://www.mywebsite.com:443/
será https://www.mywebsite.com:443/
Você também deve verificar se o site está vinculado à página correta (https) nas páginas HTML.