Wer eine Webseite einmal mit und einmal ohne www. aufruft, sieht oft denselben Inhalt unter zwei Adressen. Für Suchmaschinen ist das ein Duplicate-Content-Problem, für SEO-Statistiken ein Splitting der Werte. Mit drei Zeilen in der .htaccess leitet der Apache-Webserver alle Aufrufe von www.deine-domain.de dauerhaft per 301-Weiterleitung auf deine-domain.de um. Hier der fertige Code, ein interaktiver Generator für deine eigene Domain plus die Antworten auf die typischen Fehlerfälle.
Interaktiver htaccess-Generator
Trage deine Domain ein und wähle die gewünschten Optionen. Der passende htaccess-Code erscheint direkt darunter und lässt sich per Klick kopieren.
Was du beim Einsatz der generierten Regeln beachten solltest
Die .htaccess-Datei ist mächtig - Fehler darin können die komplette Seite mit einem 500-Internal-Server-Error offline nehmen. Bevor du die generierten Zeilen einspielst, drei Pflicht-Schritte:
- Bestehende htaccess sichern - per FTP/SSH eine Kopie unter
.htaccess.bakablegen. So kannst du im Notfall mit einem Befehl zurückrollen. - Reihenfolge prüfen - der Redirect gehört VOR andere Rewrite-Regeln (WordPress-Permalinks, Front-Controller etc.). Sonst greifen die anderen Regeln zuerst und der Redirect wird übersprungen.
- Erst auf Testdomain / Staging - wenn möglich, an einer Subdomain wie
test.deine-domain.deausprobieren. Mindestens aber direkt nach dem Upload mit den drei curl-Befehlen aus Schritt 3 prüfen, dass die 301-Weiterleitung kommt und die Ziel-URL korrekt ist.
Sicherheit des Generators selbst: Der Code läuft vollständig in deinem Browser (kein Server-Side-Processing), die Domain-Eingabe wird vor dem Einbau in die Regel auf erlaubte Zeichen geprüft (a-z, 0-9, Bindestrich, Punkt) - so kann kein bösartiger Regex-Code in die Ausgabe rutschen. Falls du den Generator-Output trotzdem von Hand prüfen willst: die Apache-Direktiven sind alle dokumentiert (RewriteEngine, RewriteCond, RewriteRule, Header) und enthalten weder externe Aufrufe noch dynamische Includes.
Code-Beispiel zum Einbinden in die htaccess
Die .htaccess-Datei liegt im Wurzelverzeichnis deines Webprojekts (oft public_html/, htdocs/ oder www/). Falls noch keine vorhanden ist, lege sie einfach an. Eine ausführliche Erklärung was eine htaccess kann findest du im Artikel .htaccess: Grundlagen, Beispiele und Sicherheit.
Drei Zeilen reichen für die Weiterleitung von www zu ohne-www:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.deine-domain\.de$
RewriteRule ^(.*)$ https://deine-domain.de/$1 [L,R=301]
Was bedeuten diese drei Zeilen?
- RewriteEngine on - aktiviert das Rewrite-Modul des Apache-Webservers. Ohne diese Zeile ignoriert Apache alle nachfolgenden Rewrite-Befehle.
- RewriteCond %{HTTP_HOST} ^www\.deine-domain\.de$ - prüft, ob der eingehende Aufruf an die Domain mit "www." beginnt. Die Backslash-Punkte sind Escape-Sequenzen: in regulären Ausdrücken hätte ein einfacher Punkt eine Sonderbedeutung (jedes Zeichen), das wollen wir hier ausschließen.
- RewriteRule ^(.*)$ https://deine-domain.de/$1 [L,R=301] - leitet die komplette URL (alles nach der Domain, in
$1gespeichert) auf die Variante ohne www um. Die Flags[L,R=301]bedeuten: L = "letzte Regel" (keine weiteren prüfen), R=301 = "Permanent Moved" (Browser und Suchmaschinen merken sich das dauerhaft).
Achte bei deinem eigenen Code darauf, deine-domain.de durch deine tatsächliche Domain zu ersetzen - der Generator oben macht das für dich.
Kombination mit HTTPS-Erzwingung
In der Praxis lohnt sich der www-Redirect selten allein. Sobald deine Seite HTTPS unterstützt (was 2026 Pflichtprogramm ist), willst du auch HTTP-Aufrufe auf HTTPS umleiten. Eleganter als zwei separate Redirects ist die Kombination, die in einem Schritt sowohl Protokoll als auch Domain korrigiert:
RewriteEngine on
# Aufrufe ohne HTTPS oder mit www auf https://deine-domain.de umleiten
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.deine-domain\.de$ [NC]
RewriteRule ^(.*)$ https://deine-domain.de/$1 [L,R=301]
Hier prüft Apache zwei Bedingungen mit ODER-Verknüpfung: entweder ist die Verbindung nicht HTTPS, oder die Domain enthält "www.". In beiden Fällen erfolgt die Umleitung zur sauberen Ziel-Adresse. Vorteil gegenüber zwei separaten Regeln: nur EINE Umleitung statt zwei, was eine Redirect-Kette vermeidet (Google bewertet Ketten schlechter).
HSTS-Header für mehr Sicherheit
Wenn HTTPS sicher und stabil läuft, lohnt sich der HSTS-Header (HTTP Strict Transport Security). Dieser teilt dem Browser mit: speichere für ein Jahr, dass diese Domain nur per HTTPS aufgerufen werden darf, vermeide selbst dann HTTP, wenn der Nutzer es manuell eingibt. Der Browser merkt sich das, beim nächsten Besuch wird gar nicht erst per HTTP angefragt.
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>
Wichtig: HSTS einmal aktiviert, lässt sich nicht ohne Weiteres rückgängig machen. Browser, die den Header schon kennen, ignorieren manuelle HTTP-Versuche für die gespeicherte Dauer. Daher den Header erst setzen, wenn HTTPS wirklich überall stabil läuft.
Nginx-Variante (statt Apache)
Auf Nginx-Webservern gibt es keine .htaccess - die Konfiguration läuft über die Server-Block-Direktiven, meist in /etc/nginx/sites-available/deine-domain.de:
# www-Variante als eigener Server-Block, leitet auf ohne-www um
server {
listen 80;
listen 443 ssl;
server_name www.deine-domain.de;
return 301 https://deine-domain.de$request_uri;
}
# HTTP auf HTTPS und die finale Adresse
server {
listen 80;
server_name deine-domain.de;
return 301 https://deine-domain.de$request_uri;
}
# Eigentlicher Vhost auf HTTPS
server {
listen 443 ssl;
server_name deine-domain.de;
# ... eigentliche Konfiguration
}
Nach Änderungen die Konfiguration prüfen und neu laden: nginx -t && systemctl reload nginx
Apache VirtualHost-Variante (ohne htaccess)
Wer Zugriff auf die Apache-Konfiguration hat, kann die Umleitung auch direkt im VirtualHost setzen - das ist performanter, weil Apache nicht für jeden Request die .htaccess parsen muss:
<VirtualHost *:80>
ServerName www.deine-domain.de
Redirect 301 / https://deine-domain.de/
</VirtualHost>
<VirtualHost *:80>
ServerName deine-domain.de
Redirect 301 / https://deine-domain.de/
</VirtualHost>
<VirtualHost *:443>
ServerName www.deine-domain.de
Redirect 301 / https://deine-domain.de/
# ... SSL-Config
</VirtualHost>
<VirtualHost *:443>
ServerName deine-domain.de
DocumentRoot /var/www/deine-domain.de
# ... SSL-Config
</VirtualHost>
Nach Änderungen Konfiguration prüfen und Apache neuladen:
apache2ctl -t # Syntax-Check
apache2ctl graceful # Reload ohne Verbindungs-Abbruch
Wie testest du den Redirect?
Vor dem Live-Schalten und nach jedem Edit kannst du den Redirect mit curl prüfen. Der Schalter -I holt nur den HTTP-Header, -L würde der Weiterleitung folgen.
curl -I http://www.deine-domain.de/
curl -I https://www.deine-domain.de/
curl -I http://deine-domain.de/
Erwartetes Ergebnis bei allen drei Aufrufen:
HTTP/1.1 301 Moved Permanently
Location: https://deine-domain.de/
Wenn du stattdessen HTTP/1.1 200 OK siehst, greift die Regel nicht - meist liegt das an einer fehlenden oder falsch positionierten .htaccess, an einem deaktivierten mod_rewrite oder daran, dass der Hoster .htaccess-Direktiven nicht erlaubt.
Auswirkung auf SEO
Ein sauberer Redirect von www auf ohne-www (oder umgekehrt) hat drei wichtige SEO-Effekte:
- Duplicate Content wird vermieden - Suchmaschinen sehen nur eine Variante als kanonische Adresse und verteilen den PageRank dort zusammen.
- Backlinks zählen zusammen - Wenn externe Seiten teils mit www und teils ohne verlinken, würde die Linkkraft sonst geteilt. Durch den 301 fließt alles in die kanonische Domain.
- Klare Signale für Google - die Search Console zeigt nur eine Property mit konsistenten Daten statt zwei mit halbierten Metriken.
Damit Google die Änderung schnell verarbeitet, hilft eine korrekte XML-Sitemap mit der gewünschten Variante und ein <link rel="canonical"> auf jeder Seite, das auf die kanonische URL zeigt.
Häufige Fehler und Lösungen
Die Regel greift nicht - 200 statt 301
Mehrere mögliche Ursachen: Die .htaccess liegt nicht im richtigen Verzeichnis (sie muss im Domain-Root sein, nicht in einem Unterordner). Das Apache-Modul mod_rewrite ist nicht aktiviert (in Standard-Setups meist eingeschaltet, bei manchen Hostern muss man es im Kundenmenü freischalten). Oder der Hoster erlaubt keine .htaccess-Direktiven (selten bei seriösen Hostern, aber bei sehr günstigen Tarifen kommt das vor).
Endlosschleife (Redirect Loop)
Wenn der Browser meldet "Diese Webseite leitet Sie zu oft weiter", hast du wahrscheinlich eine Regel doppelt definiert oder die Ziel-URL leitet selbst wieder auf die Ursprungs-URL um. Häufige Ursache: ein zweiter Redirect-Block im VirtualHost, der die ohne-www-Variante zurück auf www leitet. Lösung: alle Redirects in EINEM Block zusammenfassen.
SSL-Zertifikat funktioniert nur für eine Variante
Bei Let's-Encrypt und ähnlichen kostenlosen Zertifikaten musst du beide Varianten - mit und ohne www - im Zertifikat eintragen lassen. Sonst läuft der HTTPS-Aufruf der www-Variante in einen Zertifikatsfehler, bevor der Redirect überhaupt greift. Mit certbot certonly -d deine-domain.de -d www.deine-domain.de bekommst du beide Varianten in einem Zertifikat.
Reihenfolge der Regeln ist wichtig
Apache verarbeitet htaccess-Regeln von oben nach unten. Der www-Redirect sollte VOR anderen Rewrite-Regeln stehen (Front-Controller, WordPress-Permalinks etc.). Sonst greifen die anderen Regeln zuerst und der Redirect wird nicht ausgeführt.
Querystrings gehen verloren
Bei sehr alten Regeln ohne $1 oder bei manchen Hosting-Setups kann es passieren, dass URL-Parameter (alles nach dem ?) beim Redirect verloren gehen. Mit der oben gezeigten Regel RewriteRule ^(.*)$ https://deine-domain.de/$1 [L,R=301] bleiben sowohl Pfad als auch Querystring erhalten - das $1 übernimmt den kompletten URI inklusive Parameter.
Häufige Fragen
Ist www oder ohne-www besser für SEO?
Beides ist aus SEO-Sicht gleichwertig. Google behandelt beide Varianten technisch identisch, solange du eine konsequent durchziehst und die andere per 301 weiterleitest. Die Entscheidung ist Geschmackssache: ohne-www wirkt moderner und kürzer, mit www traditioneller und manchmal "sicherer" wahrgenommen.
Was passiert mit alten Backlinks auf die andere Variante?
Bei einem korrekten 301-Redirect übertragen Suchmaschinen den Großteil des Linkjuices (geschätzt 90-99%) auf die Ziel-Variante. Die externen Seiten musst du nicht ändern - der Redirect macht den Job. Trotzdem kannst du wichtige Backlink-Partner bitten, ihren Link direkt auf die kanonische URL zu setzen, das spart einen Redirect-Hop.
Wie lange dauert es, bis Google die Änderung übernimmt?
Meist innerhalb von Tagen bis wenigen Wochen. Voraussetzung: Du hast keine Crawling-Blockaden und die Search Console kennt beide Properties (mit und ohne www). Mit der "URL-Inspektion" lassen sich einzelne Seiten gezielt neu crawlen lassen.
Muss ich noch eine zweite Search Console Property anlegen?
Mit der modernen "Domain-Property" (statt URL-Präfix-Property) reicht ein Eintrag - sie deckt alle Subdomains automatisch ab. Falls du noch die alte URL-Präfix-Variante nutzt, brauchst du je eine Property für mit-www und ohne-www, plus die Einstellung der bevorzugten Variante.
Funktioniert das auch auf einem Windows-Server (IIS)?
Apache-Direktiven funktionieren auf IIS nicht. Dort braucht es URL-Rewrite-Module mit eigener web.config-Syntax. Das Prinzip bleibt aber gleich: eine Rewrite-Rule prüft den Host und macht einen 301. Konkrete IIS-Beispiele liefert die Microsoft-Dokumentation zum Modul URL Rewrite.
Was ist mit Subdomains wie shop.deine-domain.de?
Die obige Regel greift nur für www. Subdomains haben ihre eigene Konfiguration. Wenn du z.B. shop.deine-domain.de hast, würde der Aufruf www.shop.deine-domain.de ins Leere laufen (sofern die Subdomain nicht im DNS auf www zeigt) - das ist meist gewünscht. Sonst pro Subdomain eine separate Regel anlegen.
Fazit
Drei Zeilen htaccess reichen, um die Frage "mit oder ohne www" sauber und SEO-konform zu lösen. In Kombination mit HTTPS und einem HSTS-Header ist die Basis-Konfiguration deines Webservers nach 2026er-Standard erledigt. Der Generator oben hilft dir, den richtigen Code für deine Domain in Sekunden zu bekommen - kopieren, in die .htaccess einfügen, testen.
Kommentararchiv
9 Leserkommentare aus den Jahren 2012 bis 2017. Mehrere Bestätigungen, dass der htaccess-Code so funktioniert ("danke, die htaccess-Umleitung funktioniert bei mir jetzt prima"). Wiederkehrendes Thema: Konflikte mit Hoster-Voreinstellungen (1&1 schrieb URLs automatisch um, was Google-Search-Console-Verifizierungen blockierte) und Redirect-Schleifen bei WordPress, die sich über Einstellungen / Allgemein und neu gespeicherte Permalinks lösen lassen. Eine offene Leserfrage zu Redirects in Unterverzeichnissen ist durch den Generator oben (Pfad wird per
$1übernommen) jetzt sauber abgedeckt.