Mittels nginx Anfragen für eine Domain auf die www Subdomain weiterleiten

In diesem Beitrag beschreibe ich wie bei nginx Anfragen für eine Domain automatisch auf eine Subdomain wie www weitergeleitet werden können. Sowohl für HTTP als auch HTTPS Verbindungen.

Um die Weiterleitung für HTTP und HTTPS zu ermöglichen muss die Konfiguration der Website über zwei server Blöcke verfügen. Einen für HTTP (Port 80) und einen für HTTPS Verbindungen (Port 443). Die nachfolgende Konfiguration leitet mittels dem return Parmeter alle Anfragen inklusive der angefragten URI auf eine HTTPS Verbindung der Subdomain www weiter. Dies funktioniert auch für beliebige andere Subdomains.

server  {
        listen          80;
        listen          [xxx:xxx:xxx::42]:80;

        server_name     example.com;
        return          301 https://www.examole.com$request_uri;
}

server  {
        listen          443 ssl;
        listen          [xxx:xxx:xxx::42]:443 ssl;

        server_name     example.com;

        ssl_certificate         /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/example.com/privkey.pem;
        add_header              Strict-Transport-Security "max-age=63072000; includeSubdomains; ";
        add_header              X-Frame-Options "DENY";

        return          301 https://www.example.com$request_uri;
} 

In dem Artikel nginx unter Ubuntu Linux 16.04 Server mit sicherer SSL Konfiguration, PHP und MariaDB oder MySQL installieren und konfigurieren beschreibe ich meine Standardkonfiguration für neue Seiten. Diese enthält auch eine automatische Weiterleitung von HTTP auf HTTPS Verbindungen.