Apache Rewrite não funciona

1

Eu tenho uma coisa muito estranha acontecendo na minha configuração do apache2. Eu só quero redirecionar HTTP para HTTPS. Eu tentei todas as formas possíveis, assim:

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Eu coloquei isso em /etc/apache2/apache2.conf , mas simplesmente não funcionou.

Em seguida, coloco o acima em <VirtualHost *:80> e ele funciona, mas ao invés disso eu obtenho

This page isn’t working
kanzan.se redirected you too many times.

Isso ocorre porque eu uso a porta 80 por trás de um servidor de cache (Varnish) e na frente disso eu uso um <VirtualHost *:443> . Tudo funciona bem, exceto por isso.

Eu até tive esse problema antes de colocar o Varnish lá, mas depois consegui resolvê-lo colocando a reescrita em <VirtualHost *:80> desde que funcionou.

De alguma forma, o Apache não se importa com seu arquivo de configuração principal /etc/apache2/apache2.conf ?

    
por user2908112 22.09.2018 / 19:49

1 resposta

2

I put this in /etc/apache2/apache2.conf but it simply didn't work.

Se você quer dizer que coloca as diretivas diretamente no servidor, em um contexto servidor , as diretivas não farão nada se você tiver as diretivas mod_rewrite no <VirtualHost> que está sendo acessado. Você precisaria habilitar a herança mod_rewrite (mas você pode não querer fazer isso).

Se você estiver por trás de um servidor proxy que gerencia seu SSL, o servidor de aplicativos sempre estará exibindo conteúdo pela porta 80, portanto, a variável HTTPS do servidor nunca será on - daí o loop de redirecionamento.

No entanto, o servidor proxy deve definir o cabeçalho da solicitação X-Forwarded-Proto , indicando (para o servidor de aplicativos) qual protocolo está sendo usado. por exemplo. http ou https . Assim, você provavelmente poderia alterar sua diretiva para ler o seguinte:

RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ [NC]
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Então, novamente, sua configuração pode estar configurando algum outro cabeçalho não padrão (ou variável de ambiente) que você precisaria usar.

    
por 22.09.2018 / 20:27