Redirecionamento https errado com dois sites no mesmo servidor

Redirecionamento https errado com dois sites no mesmo servidor

Eu tenho dois sites, ligue para elesexemplo-1.comeexemplo-2.comimplantado no mesmo servidor (CentOS 7.5) ambos servidos pelo apache na porta 80. O redirecionamento é realizado com hosts virtuais (veja abaixo a configuração completa).

Para ambos os sites eu redireciono (permanentemente) onãoURLs http para https (sem problemas com os certificados, o bot funciona bem).

O problema que encontro é que a versão http do segundo site redireciona (movido permanentemente, 301) para o https do primeiro (a ordem dos sites está de acordo com os arquivos .conf abaixo).

Esse redirecionamento não acontece com o segundo site redirecionando para o primeiro (veja as confs abaixo), também tudo funciona como deveria se não houver necessidade de redirecionar de http para https, ou seja, começo comhttps://www.exemplo-2.com.

Aqui está o.confarquivos, qualquer idéia sobre como consertar isso seria muito apreciada.

Listen 80

<VirtualHost *:80>
    ServerName example-1.com
    Redirect permanent / https://www.example-1.com/
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot "/var/www/html/example-1"
    ServerName www.example-1.com
    ServerAlias example-1.com

## logging
   ErrorLog "/var/log/httpd/example-1-error_log"
   CustomLog "/var/log/httpd/example-1-access_log" combined

        <Directory "/var/www/html/example-1">
                DirectoryIndex index.html index.php
                Options FollowSymLinks
                AllowOverride All
       </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example-1.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example-1.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example-1.com/chain.pem
</VirtualHost>
</IfModule>
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/plain text/xml application/javascript
</IfModule>

e aconfdo segundo site (observe que a única diferença, exceto nomes, é que neste segundo não temos oOuça 80no topo)

<VirtualHost *:80>
    ServerName example-2.com
    Redirect permanent / https://www.example-2.com/
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot "/var/www/html/example-2"
    ServerName www.example-2.com
    ServerAlias example-2.com

## logging
   ErrorLog "/var/log/httpd/example-2-home-error_log"
   CustomLog "/var/log/httpd/example-2-home-access_log" combined

        <Directory "/var/www/html/example-2">
                DirectoryIndex index.html index.php
                Options FollowSymLinks
                AllowOverride All
        </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example-2.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example-2.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example-2.com/chain.pem
</VirtualHost>
</IfModule>
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/plain text/xml application/javascript
</IfModule>

Responder1

Acho que finalmente localizei o que estava errado na minha configuração. Estou postando aqui para o caso de alguém ter um problema semelhante.

Alterei os nomes dos servidores para equivalentes a www e adicionei aliases de servidor sem www, ou seja, as diretivas agora se tornam

<VirtualHost *:80>
    ServerName www.example-1.com
    ServerAlias example-1.com
    Redirect permanent / https://www.example-1.com/
</VirtualHost>

e o mesmo ajuste para o segundo site. Isso resolveu o problema de redirecionamento incorreto para mim.

informação relacionada