Estou redirecionando todas as solicitações http:// para https:// usando o arquivo .conf do host Apache2 como este.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
#more details here
</VirtualHost>
Isso está funcionando bem e redirecionando todas as solicitações para https: //
Agora quero redirecionar minha solicitação não www para www (entãohttps://example.comparahttps://www.exemplo.com). Tentei adicionar as linhas abaixo antes e depois do bloco 443 acima. Mas sem sorte :(
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
</VirtualHost>
Alguma ideia de como posso ativar isso sem .htaccess.
Por favor ajude..
Responder1
Você deseja adicionar o redirecionamento ao *:443
vhost existente. Algo assim deve funcionar:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Coloque isso antes de qualquer outra RewriteRule
seção.
Responder2
O que você tem já está correto.
E você precisa definir *:443
com NameVirtualHost
.
Utilize esta configuração onde # more details here
está toda a sua configuração de SSL, como você já possui:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
# more details here
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
# more details here
</VirtualHost>
Você precisará dos detalhes do seu certificado SSL emcada VirtualHost
recipiente, mesmo que sejam iguais.
Por favornãouse endereços IPv4 adicionais - este caso de uso não requer o consumo de endereços IP adicionais. HTTP/1.1 pode lidar com vários domínios em um endereço IP, inclusive com SSL.