Nginx rewrite multiple Konditionen – www nach nicht www und http nach https

NGINX ist ein sehr performanter Webserver, kann jedem nur empfehlen diesen als Alternative zu Apache aus zu testen.

Heute möchte ich kurz zeigen, wie man im {server} Teil der Konfiguration eine Umleitung einrichten kann, welche folgende Bedingungen erfüllt:

  1. Umschreiben des Namens von www..de nach .de
  2. Umleitung von http nach https

In Realität lassen sich mit dieser Umleitung auch weitere Bedingungen abdecken, zum Beispiel auf einen komplett anderen Domainnamen zu leiten.

Hier kommt nun die Anpassung der Konfig:

server {
server_name domain.de www.domain.de
set $wanted_domain_name domain.de;
if ($http_host != $wanted_domain_name) {
 rewrite ^(.*)$ https://$wanted_domain_name$1;
}
}

Was passiert ist, dass alles, was nicht dem wanted_domain_name entspricht, eben in diesen umgeschrieben wird – simples!

Wenn auch noch die wanted_domain immer per https ausgeliefert werden soll, dann muss auch für diese noch ein Rewrite eingerichtet werden, ebenfalls im Serverblock:

# HTTPS umleitung
if ($scheme != "https") {
 rewrite ^ https://$host$uri permanent;
}

Leave a Reply

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.