Ich verwende letsencrypt ssl. Wenn ich auf eine Site mit domain.com zugreife, werde ich umgeleitet aufhttps://domain.comaber ich möchtehttps://www.domain.com!
Ich habe www als Alias für domain.com im DNS-Panel hinzugefügt, um auf die Site mit www zuzugreifen. Aber jetzt bekomme ich eine doppelte Umleitung.
Erste Weiterleitung: domain.com zu https:// domain.com, Zweite Weiterleitung: https:// domain.com zu https:// www.domain.com
Ich möchte dies mit einer einzigen 301-Umleitung erreichen. Habe bereits mehrere in SF angegebene Lösungen ausprobiert, aber es hat nicht funktioniert. Hat jemand eine Idee?
Antwort1
Vorausgesetzt, Sie haben Zugriff auf die Nginx-Konfiguration und Ihr Letsencrypt-Zertifikat enthält sowohl domain.com als auch www.domain.com, sollte etwa Folgendes funktionieren:
server {
listen 80;
server_name www.domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen 80;
listen 443 ssl;
server_name domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
# the rest of your config
}
Ich glaube, das SSL-Zertifikat muss beide Domänen enthalten, denn bei Anfragen anhttps://domain.comDer SSL-Handshake für domain.com erfolgt, bevor die 301-Weiterleitung ausgelöst wird.
Ich nehme an, Sie könnten auch separate Zertifikate für jede Domäne haben und die Zertifikatspfade entsprechend anpassen.