
Ich habe zwei Domänen, die ich kanonisieren (www entfernen) und auf https erzwingen möchte.
Alsohttp://www.domain.io=>https://domain.ioUNDhttp://www.domain.ac=>https://domain.ac
Soweit ich gesehen habe, würde es ungefähr so funktionieren, aber ich kann nicht herausfinden, wie man die TLD extrahiert
server_name domain.io domain.sh;
return 301 https://$server_name$request_uri;
Die Live-Domänen bestehen beide aus demselben Wort und könnten daher wie folgt abgeglichen werden:
(domain)(\.ac|\.io)
Antwort1
Ich schlage vor, Sie nutzenServerBlöcke:
server {
server_name www.domain.io;
return 301 https://domain.io$request_uri;
}
server {
server_name www.domain.sh;
return 301 https://domain.sh$request_uri;
}
Eine solche Konfiguration könnte problemlos mit einem Konfigurationsmanager aus einer Vorlage generiert werden, da dies aus Leistungs-/Skalierbarkeitsgründen vom Entwickler von Nginx empfohlen wird.
Wie Richard Smith jedoch vorgeschlagen hat, können Sie auch reguläre Ausdrücke in derServernameRichtlinie:
server {
server_name ~^(?:www\.)?(?P<host_domain>.+)$;
return 301 https://$host_domain$request_uri;
}
Ich persönlich würde einen solchen Weg jedoch nicht empfehlen und eher auf die Creator-Version von Nginx setzen.