Como você substituiria esta regra de reescrita por um redirecionamento?

3

Esta página de referência do Apache e este wiki afirma claramente que para obter redirecionamentos http para https simples, mod_alias deve ser usado em vez do mais caro mod_rewrite .

Eu tenho um host virtual Apache que usa um curinga para coincidir com vários subdomínios. Eu preciso de todos esses subdomínios redirecionados para seus correspondentes https . Atualmente, estou usando o seguinte (com mod_rewrite):

<VirtualHost *:80>
    ServerName lvh.me
    ServerAlias *.lvh.me

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
</VirtualHost>

Eu tentei o seguinte, mas não funcionou .

<VirtualHost *:80>
    ServerName lvh.me
    ServerAlias *.lvh.me

    Redirect temp / https://%{HTTP_HOST}/
</VirtualHost>

A variável HTTP_HOST do apache não parece ser reconhecida nas diretivas de redirecionamento.

Então, existe alguma outra maneira de usar mod_alias para alcançar o efeito acima?

    
por Anjan 08.08.2012 / 13:34

2 respostas

2

Você não pode. Redirect é capaz de lidar com redirecionamentos simples, nos quais você está enviando o cliente para um único nome específico, mas não tem a capacidade de fazer substituições complexas (deixando de lado o fato de que %{HTTP_HOST} é mod_rewrite -specific) .

Basta ficar com mod_rewrite . mod_alias não é capaz de fazer o que você precisa.

    
por 09.08.2012 / 07:57
1

Como acompanhamento, se você usar o Apache 2.4.19 ou posterior, poderá usar um formato mais simples de redirecionamento em < Location > seções detalhadas na documentação da mod_alias . Esse novo formato usa a sintaxe de expressão , permitindo o uso de variáveis.

Por exemplo:

<VirtualHost *:80>
    ServerName lvh.me
    ServerAlias *.lvh.me

    <Location "/">
        Redirect "https://%{SERVER_NAME}%{REQUEST_URI}"
    </Location>
</VirtualHost>

Observe que apenas a diretiva Redirect funciona com esse formato mais curto, RedirectPermanent etc., não.

    
por 03.10.2017 / 01:23