Apache reescreve o redirecionamento para https e www

1

Eu preciso do mod_rewrite para fazer o seguinte

http://abc.com -> https://www.abc.com
https://abc.com/login -> https://www.abc.com/login
http://www.abc.com?x=3 -> https://www.abc.com?x=3
https://abc.com/login?x=1 -> https://www.abc.com/login?x=1
http://www.abc.com/login?x=3 -> https://www.abc.com/login 

Eu tenho o seguinte, no meu arquivo abc.com.conf vhost mas não funciona corretamente

<VirtualHost  *:80>
ServerName abc.com
ServerAlias www.abc.com        

RewriteCond %{HTTP_HOST} ^abc\.com
RewriteRule ^(.*)$ https://www.abc.com/$1 [R=permanent,L]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.abc.com/%{REQUEST_URI}

</VirtualHost>

<VirtualHost  *:443>
ServerName abc.com
ServerAlias www.abc.com        

RewriteCond %{HTTP_HOST} ^abc\.com
RewriteRule ^(.*)$ https://www.abc.com/$1 [R=permanent,L]


 </VirtualHost>

Alguém pode me ajudar no resto?

[editado para esclarecer]

    
por Jo Erlang 11.09.2012 / 06:39

1 resposta

1

Primeiro, parece que você quer forçar o ssl para todos .. Eu cuido disso primeiro no seu bloco *: 80:

<VirtualHost *:80>

  ServerName abc.com
  ServerAlias www.abc.com        

  Redirect permanent / https://www.abc.com/

</VirtualHost>

Então faça o seu *: 443 .. No entanto, você pode facilitar e retirar o abc.com em um vhost separado:

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
  ServerName abc.com
  Redirect permanent / https://www.abc.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName abc.com
  Redirect permanent / https://www.abc.com/
   ....
    ...
   # Note you need a wildcard cert.. I assue you have one already or are using self signed. 
</VirtualHost>

Ok, agora você redirecionou todo o seu abc.com para www.abc.com e pode configurar esse vhost como de costume sem todas as reescritas.

<VirtualHost *:80>

  ServerName www.abc.com        
  Redirect permanent / https://www.abc.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName www.abc.com
  ...
   ....
</VirtualHost>
    
por 11.09.2012 / 10:57