Redirecionar para https:// com www apache2

Redirecionar para https:// com www apache2

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 *:443vhost 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 RewriteRuleseção.

Responder2

O que você tem já está correto.

E você precisa definir *:443com NameVirtualHost.

Utilize esta configuração onde # more details hereestá 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 VirtualHostrecipiente, 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.

informação relacionada