
Ich habe zwei Websites, nenne siebeispiel-1.comUndbeispiel-2.comauf demselben Server bereitgestellt (CentOS 7.5), beide werden von Apache auf Port 80 bereitgestellt. Die Umleitung wird mit virtuellen Hosts durchgeführt (die vollständige Konfiguration finden Sie unten).
Für beide Seiten leite ich (permanent) dienichthttp-URLs zu https (kein Problem mit den Zertifikaten, der Bot funktioniert einwandfrei).
Das Problem, auf das ich stoße, besteht darin, dass die http-Version der zweiten Website auf die https-Version der ersten umleitet (dauerhaft verschoben, 301) (die Reihenfolge der Sites entspricht den unten stehenden .conf-Dateien).
Diese Umleitung findet nicht statt, wenn die zweite Website auf die erste umleitet (siehe die Konfigurationshinweise unten). Auch wenn keine Umleitung von http auf https nötig ist, d. h. ich beginne mithttps://www.example-2.com.
Hier sind die.confDateien, alle Ideen zur Behebung dieses Problems sind sehr willkommen.
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>
und dasKonfder zweiten Website (beachten Sie, dass der einzige Unterschied, abgesehen von den Namen, darin besteht, dass wir in dieser zweiten Website nicht dieHören Sie 80oben)
<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>
Antwort1
Ich glaube, ich habe endlich herausgefunden, was in meiner Konfiguration falsch war. Ich poste es hier, nur für den Fall, dass jemand ein ähnliches Problem hat.
Ich habe die Servernamen in www-Äquivalente geändert und Server-Aliase ohne www hinzugefügt, d. h. die Anweisungen werden jetzt
<VirtualHost *:80>
ServerName www.example-1.com
ServerAlias example-1.com
Redirect permanent / https://www.example-1.com/
</VirtualHost>
und dieselbe Anpassung für die zweite Website. Damit war das Problem der falschen Weiterleitung für mich gelöst.