Redirección https incorrecta con dos sitios web en el mismo servidor

Redirección https incorrecta con dos sitios web en el mismo servidor

Tengo dos sitios web, llámalos.ejemplo-1.comyejemplo-2.comimplementado en el mismo servidor (CentOS 7.5) ambos servidos por Apache en el puerto 80. La redirección se realiza con hosts virtuales (consulte la configuración completa a continuación).

Para ambos sitios redirijo (permanentemente) elnoURL http a https (no hay problema con los certificados, el bot funciona bien).

El problema que encuentro es que la versión http del segundo sitio web redirige (movida permanentemente, 301) al https del primero (el orden de los sitios depende de los archivos .conf a continuación).

Esta redirección no ocurre cuando el segundo sitio web redirige al primero (consulte las configuraciones a continuación), además, todo funciona como debería si no hay necesidad de redirigir de http a https, es decir, empiezo conhttps://www.ejemplo-2.com.

Aquí están los.confarchivos, cualquier idea sobre cómo solucionar este problema sería muy 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>

y elconfinarde la segunda web (fíjate que la única diferencia, salvo nombres, es que en esta segunda no tenemos laEscuchar 80en la cima)

<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>

Respuesta1

Creo que finalmente localicé el problema en mi configuración. Lo publico aquí en caso de que alguien tenga un problema similar.

Cambié los nombres de los servidores a equivalentes de www y agregué alias de servidores sin www, es decir, las directivas ahora se convierten en

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

y el mismo ajuste para el segundo sitio web. Esto solucionó el problema de la redirección incorrecta.

información relacionada