Ich habe SSL über Certbot installiert und auf alle meine Sites kann über SSL zugegriffen werden.
Wenn jedoch http in der Browser-URL verwendet wird, wird nur die erste von unten auf https umgeleitet. Die anderen werden nicht auf https umgeleitet und bleiben bei http.
- meinedomain.com
- xx.meinedomain.com
- yy.meinedomain.com
Für Port 80 sind unten die Inhalte der Umschreiblogik in der Virtualhosts-Datei aufgeführt:
RewriteEngine on
RewriteCond %{SERVER_NAME} =mydomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Für Port 443 sind unten die Inhalte der virtuellen Hosts aufgeführt:
DocumentRoot /var/www/html
ServerName mydomain.com
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias xx.mydomain.com
ServerAlias yy.mydomain.com
SSLCertificateFile /etc/letsencrypt/live/yy.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yy.mydomain.com/privkey.pem
Wie Sie sehen werden, verweisen die Domäne und die Subdomänen auf dasselbe Stammverzeichnis für Dokumente.
Wie kann ich dafür sorgen, dass alle in den obigen Punkten aufgeführten URLs auf https umgeleitet werden, wenn http im Browser eingegeben wird? Ich bin nicht sicher, was genau an der Umschreiblogik von Port 80 geändert werden muss, damit dies für als Server-Aliase konfigurierte Subdomänen funktioniert.
Antwort1
Ihre Konfiguration ist abhängig (von der Anforderung an =example.com
), daher leitet die RewriteRule Anforderungen an nicht um xx.example.com
.
Du kannst entweder
diesen Zustand verbessern (wenn Sie weiterhin nur für bestimmte (Sub-)Domains umleiten möchten). Nicht sehr schön, aber zum Beispiel:
RewriteEngine on RewriteCond %{SERVER_NAME} =example.com [OR] RewriteCond %{SERVER_NAME} =xx.example.com [OR] RewriteCond %{SERVER_NAME} =yy.example.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Entfernen Sie die Bedingung vollständig (und leiten Sie alles auf https um (mit dem Risiko, dass Sie auch
new-subdomain.example.com
auf https umleiten, für das Sie noch kein gültiges Zertifikat haben)RewriteEngine on RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]