Konfiguration von Nginx für die Umleitung von www zu non-www
Websitebetreiber verwenden oft eine einzige Version ihrer Domain, um die SEO und Nutzererfahrung zu verbessern. Die Umleitung der www-Version einer Domain zur non-www-Version (oder umgekehrt) ist üblich. Für Nginx-Benutzer erfordert die Einrichtung dieser Umleitung eine spezielle Konfiguration. Dieser Artikel erklärt, wie man www zu non-www mit Nginx umleitet und hilft Ihnen dabei, eine einheitliche Domainstruktur für Ihre Website beizubehalten.
Einrichtung von Nginx für die www zu Non-www Umleitung
Erstellung eines Server-Blocks für die Umleitung
Um einen Server-Block für die www zu non-www Umleitung einzurichten:
-
Erstellen Sie eine neue Konfigurationsdatei:
sudo nano /etc/nginx/sites-available/example.com
-
Fügen Sie diesen Server-Block hinzu:
server { listen 80; server_name www.example.com example.com; # Weitere Server-Konfigurationen hier }
-
Verwenden Sie die
server_name
-Direktive, um sowohl die www- als auch die non-www-Version Ihrer Domain anzugeben. -
Speichern Sie die Datei und verlassen Sie den Texteditor.
-
Erstellen Sie einen symbolischen Link, um die Seite zu aktivieren:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
-
Entfernen Sie die Standard-Nginx-Konfiguration:
sudo rm /etc/nginx/sites-enabled/default
Diese Einrichtung bildet die Grundlage für die Implementierung der www zu non-www Umleitung in Nginx.
Implementierung der 301-Weiterleitung in Nginx
Schreiben der Umleitungsregel
Um www zu non-www mit Nginx umzuleiten, verwenden Sie die return
-Direktive mit einem 301-Statuscode. Dies zeigt eine dauerhafte Umleitung an. Fügen Sie diese Regel zu Ihrem Server-Block hinzu:
server {
listen 80;
server_name www.example.com example.com;
if ($host = www.example.com) {
return 301 $scheme://example.com$request_uri;
}
# Weitere Server-Block-Konfigurationen
}
Diese Regel prüft, ob der angeforderte Host die www-Version Ihrer Domain ist. Wenn ja, wird auf die non-www-Version umgeleitet, wobei das ursprüngliche Schema (http oder https) und alle URL-Parameter beibehalten werden.
Testen der Nginx-Konfiguration
Nachdem Sie die Umleitungsregel geschrieben haben, testen Sie Ihre Nginx-Konfiguration auf Fehler:
-
Führen Sie diesen Befehl aus:
sudo nginx -t
-
Wenn keine Fehler vorliegen, sehen Sie eine Meldung, die anzeigt, dass der Konfigurationstest erfolgreich war.
-
Bei Fehlern überprüfen Sie Ihre Konfigurationsdatei und beheben Sie etwaige Probleme.
Sobald der Konfigurationstest erfolgreich ist, laden Sie Nginx neu, um die Änderungen anzuwenden:
sudo systemctl reload nginx
Dieser Befehl lädt Nginx neu, ohne aktive Verbindungen zu unterbrechen. Ihre www zu non-www Umleitung sollte jetzt funktionieren. Testen Sie es, indem Sie Ihre www-Domain in einem Webbrowser aufrufen, um zu bestätigen, dass sie zur non-www-Version umgeleitet wird.
Zusätzliche Überlegungen zur Umleitung
Umgang mit HTTPS-Verbindungen
Um HTTPS-Verbindungen zu handhaben, richten Sie SSL-Zertifikate ein und aktualisieren Sie Ihren Nginx-Server-Block:
-
Besorgen Sie ein SSL-Zertifikat für Ihre Domain.
-
Installieren Sie das SSL-Zertifikat auf Ihrem Server.
-
Aktualisieren Sie Ihren Nginx-Server-Block zur Unterstützung von HTTPS:
server {
listen 80;
listen 443 ssl;
server_name www.example.com example.com;
ssl_certificate /pfad/zu/ihrem/zertifikat.crt;
ssl_certificate_key /pfad/zu/ihrem/zertifikat.key;
if ($host = www.example.com) {
return 301 https://example.com$request_uri;
}
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
# Weitere SSL- und Server-Konfigurationen
}
Diese Konfiguration leitet HTTP- und HTTPS-Verkehr von www zu non-www um und verwendet HTTPS für alle Verbindungen.
DNS-Konfiguration für www- und Non-www-Domains
So richten Sie DNS für www- und non-www-Domains ein:
-
Erstellen Sie einen A-Eintrag für Ihre non-www-Domain (example.com), der auf die IP-Adresse Ihres Servers zeigt.
-
Richten Sie einen CNAME-Eintrag für die www-Subdomain (www.example.com) ein, der auf Ihre non-www-Domain verweist.
Beispiel für DNS-Einträge:
example.com. A 123.45.67.89
www.example.com. CNAME example.com.
Nach DNS-Änderungen geben Sie Zeit für die Verbreitung. Dies kann bis zu 48 Stunden dauern, erfolgt aber oft innerhalb weniger Stunden. Verwenden Sie Online-DNS-Lookup-Tools, um den Verbreitungsstatus Ihrer Domain zu überprüfen.
Durch den Umgang mit HTTPS-Verbindungen und die Konfiguration von DNS schaffen Sie ein sicheres Umleitungssystem für Ihre www- und non-www-Domains.
Fehlerbehebung bei häufigen Umleitungsproblemen
Umgang mit Umleitungsschleifen
Umleitungsschleifen entstehen, wenn Umleitungen zur ursprünglichen URL zurückführen und einen Zyklus bilden. So finden und beheben Sie zirkuläre Umleitungen:
-
Verwenden Sie Online-Redirect-Checker oder Browser-Entwicklertools, um Schleifen zu erkennen.
-
Überprüfen Sie Ihre Nginx-Konfigurationsdateien auf widersprüchliche Umleitungsregeln.
-
Suchen Sie nach Umleitungen in Ihrem Content-Management-System oder .htaccess-Dateien.
So finden Sie Umleitungsprobleme in Serverlogs:
-
Greifen Sie auf Nginx-Fehlerprotokolle zu:
sudo tail -f /var/log/nginx/error.log
-
Suchen Sie nach wiederholten Umleitungseinträgen oder Fehlermeldungen.
-
Verwenden Sie Log-Analyse-Tools, um Muster im Umleitungsverhalten zu finden.
Optimierung der Umleitung für Suchmaschinen
Um Suchmaschinen zu helfen, Ihre Umleitungen zu verstehen:
-
Verwenden Sie 301 (dauerhafte) Umleitungen für www zu non-www. Überprüfen Sie dies in Ihrer Nginx-Konfiguration:
return 301 $scheme://example.com$request_uri;
-
Aktualisieren Sie Ihre XML-Sitemap:
- Entfernen Sie www-URLs
- Fügen Sie non-www-URLs hinzu
- Reichen Sie die aktualisierte Sitemap bei Suchmaschinen ein
-
Ändern Sie Ihre robots.txt-Datei:
- Verwenden Sie die non-www-Version in der Sitemap-Direktive
- Beispiel:
Sitemap: https://example.com/sitemap.xml
-
Nutzen Sie die Google Search Console, um:
- Ihre bevorzugte Domainversion festzulegen
- Auf Crawling-Fehler im Zusammenhang mit Umleitungen zu prüfen
Durch die Behebung von Umleitungsschleifen und die Optimierung für Suchmaschinen können Sie die Leistung und Sichtbarkeit Ihrer Website in Suchmaschinen verbessern.