Kanonisierung mehrerer Domänen

Kanonisierung mehrerer Domänen

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.

verwandte Informationen