Zum Hauptinhalt springen Skip to page footer

Einrichten einer Weiterleitung von www zu nicht-www für HTTP und HTTPS mittels Virtual Host (Apache und Nginx)

| Tutorial | Apache Nginx Ubuntu 22.04 20.04

In diesem Tutorial zeigen wir Ihnen, wie Sie auf Ihrem Webserver einen virtuellen Host konfigurieren, um eine Weiterleitung von www.example.com auf example.com einzurichten. Dies ermöglicht allen Benutzern den Zugriff auf Ihre Website, unabhängig davon, ob sie das Präfix "www" verwenden. Die Anleitung deckt sowohl den Apache-Webserver als auch den Nginx-Webserver ab und beinhaltet die erforderlichen Konfigurationsschritte für beide Server.

Szenario

Nehmen wir an, Sie haben eine Website mit dem Domainnamen „example.com“. Ursprünglich war die Website ohne das Präfix „www“ konfiguriert, sodass Benutzer einfach über „example.com“ auf die Seite zugreifen konnten. Der Zugriff auf die Website war jedoch nur über eine unverschlüsselte HTTP-Verbindung möglich.

Jetzt haben Sie sich entschieden, Ihre Sicherheit zu erhöhen und Ihre Website auf HTTPS umzustellen. Sie haben ein gültiges SSL/TLS-Zertifikat für „example.com“ erworben und die notwendigen Konfigurationen für HTTPS vorgenommen. Ihre Website ist nun über „example.com" erreichbar.

Sie stellen fest, dass einige Benutzer immer noch versuchen, über „www.example.com“ auf Ihre Website zuzugreifen. Da die Site jedoch nur für „example.com“ konfiguriert ist, erhalten diese Benutzer entweder eine Fehlermeldung oder können überhaupt nicht auf die Seite zugreifen.

Sie beschließen, eine Weiterleitung einzurichten, um sicherzustellen, dass alle Benutzer auf Ihre Website zugreifen können, unabhängig davon, ob sie „www.example.com“ oder „example.com“ eingeben. Das bedeutet, dass der Datenverkehr von „www.example.com“ zu „example.com“ umgeleitet werden muss, damit alle Benutzer auf die gewünschte Seite zugreifen können. 

Wir zeigen Ihnen in diesem Tutorial, wie Sie auf Ihrem Webserver einen virtuellen Host konfigurieren, der den Datenverkehr von „www.example.com“ abfängt und eine permanente Weiterleitung zu „example.com“ einrichtet. Auf diese Weise werden Besucher, die „www.example.com“ eingeben, automatisch zu „example.com“ weitergeleitet, wo sie über HTTPS auf Ihre Website zugreifen können.

Durch die Einrichtung einer Umleitung von „www“ zu „nicht-www“ über einen virtuellen Host wird sichergestellt, dass der Datenverkehr korrekt weitergeleitet wird und alle Benutzer auf die Website zugreifen können, unabhängig davon, ob sie das Präfix „www“ verwenden.

Anleitung für Apache

1. Öffnen bzw. erstellen Sie die Konfigurationsdatei für Ihren Virtual Host für die Domain www.example.com. Die Konfigurationsdateien befindet sich in der Regel unter /etc/apache2/sites-available/ oder /etc/httpd/conf.d/.

sudo nano /etc/apache2/sites-available/www.excample.com.conf

2. Fügen Sie den folgenden Konfigurations-Code in die Virtual Host-Datei ein:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / http://example.com/
</VirtualHost>

Stellen Sie sicher, dass Sie "www.example.com" durch Ihre eigene Domain ersetzen. Der erste Virtual Host blockiert den Zugriff auf "www.example.com" und leitet den Traffic auf "example.com" für unverschlüsselte HTTP-Verbindungen um. HTTPS-Anfragen werden hierdurch ohne eigenen Block ebenfalls auf “example.com” umgeleitet.

3. Speichern Sie die Konfigurationsdatei und schließen Sie sie.

4. Aktivieren Sie den Virtual Host, indem Sie den Befehl a2ensite (für Apache2) oder ln -s verwenden. Beispiel:

sudo a2ensite your_virtual_host.conf

5. Starten oder aktualisieren Sie den Apache-Webserver, um die Änderungen zu übernehmen. Verwenden Sie dafür den Befehl systemctl:

sudo systemctl restart apache2

Anleitung für Nginx

1. Öffnen bzw. erstellen Sie die Konfigurationsdatei für Ihren Virtual Host für die Domain www.example.com. Die Konfigurationsdateien befindet sich in der Regel unter /etc/nginx/conf.d/ oder /etc/nginx/sites-available/.

sudo nano /etc/nginx/sites-available/www.excample.com.conf

2. Fügen Sie den folgenden Konfigurations-Code in die Virtual Host-Datei ein:

server {
    listen 80;
    server_name www.example.com;
    return 301 http://example.com$request_uri;
}

Stellen Sie sicher, dass Sie "www.example.com" durch Ihre eigene Domain ersetzen.

3. Speichern Sie die Konfigurationsdatei und schließen Sie sie.

4. Aktivieren Sie die Website, indem Sie einen symbolischen Link von der Konfigurationsdatei in das Verzeichnis sites-enabled erstellen. Verwenden Sie den folgenden Befehl:

sudo ln -s /etc/nginx/conf.d/your_config_file.conf /etc/nginx/sites-enabled/

Stellen Sie sicher, dass Sie "your_config_file.conf" durch den Namen Ihrer Konfigurationsdatei ersetzen.

5. Starten oder aktualisieren Sie den Nginx-Webserver, um die Änderungen zu übernehmen. Verwenden Sie dafür den Befehl systemctl:

sudo systemctl restart nginx