Redirecionar todo o VHost para HTTPS no mesmo domínio

1

Eu tenho um vhost que aceita todos os domínios e subdomínios dos quatro principais nomes de domínio, por exemplo, example.com , example.org , three.example.co.uk etc.

Eu quero que o VHost inteiro redirecione para o mesmo URL que o solicitado, mas HTTPS.

Eu sei disso:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias *.all *.other *.domains
    Redirect permanent / https://example.com/
</VirtualHost>

mas isso não funcionará para subdomínios, porque o URL de destino é explícito.

É tão fácil no nginx:

return 301 https://$host$request_uri;

então eu pensei que o Apache teria algo para isso, e isso acontece, mas isso não funciona (não há erro do Apache, apenas redirecionamento quebrado):

Redirect permanent / https://%{HTTP_HOST}/

Existe alguma maneira de usar uma variável de domínio / host? Pontos de bônus por não usar RewriteRule !

    
por Rudie 11.05.2015 / 20:15

1 resposta

1

Responder em Redirecionamento de novo domínio do Apache SSL é bom o suficiente. (Não vi isso enquanto escrevia a pergunta.)

Solução:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias *.example.com etc
    RewriteEngine on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

Usar %{HTTP_HOST} no URL de destino parece funcionar bem com o Apache 2.4.

Qualquer método sem reescrever, como o nginx faz? Ou não vale a pena?

    
por 11.05.2015 / 21:38