Eine einzelne Seite leitest du mit Redirect 301 /alt.html https://deine-domain.de/neu/ um. Für Muster, ganze Ordner und Domainwechsel nimmst du RewriteRule mit [R=301,L]. Neue Regeln gehören oben in die .htaccess, vor den WordPress-Block. Viele Weiterleitungen auf einmal erzeugt der 301-Redirect-Generator aus einer Liste.
301, 302 oder 410?
| Code | Bedeutung | Wann |
|---|---|---|
| 301 | dauerhaft verschoben | Seite hat eine neue Adresse, Domainumzug, HTTPS-Umstellung. Google überträgt die Signale auf das Ziel. |
| 302 | vorübergehend | Wartungsseite, A/B-Test, Aktion. Die alte URL bleibt im Index. |
| 410 | dauerhaft entfernt | Seite gibt es nicht mehr und kein passender Ersatz. Wird schneller aus dem Index entfernt als 404. |
Faustregel: Gibt es eine inhaltlich passende neue Seite, 301 dorthin. Gibt es keine, 410. Alle alten URLs pauschal auf die Startseite umzuleiten wertet Google als „Soft 404“, das bringt nichts.
Weiterleitungen für jeden Fall
Einzelne Seite
Redirect 301 /alte-seite.html https://deine-domain.de/neue-seite/
Die Quelle steht immer ohne Domain und mit führendem Schrägstrich, das Ziel als vollständige URL. Redirect stammt aus dem Modul mod_alias und ist die einfachste Variante.
Seite mit Parametern (?id=5)
Redirect ignoriert alles nach dem Fragezeichen. Dafür brauchst du mod_rewrite:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=5$
RewriteRule ^produkt\.php$ https://deine-domain.de/produkte/filezilla-pro/? [R=301,L]
Das ? am Ende des Ziels entfernt den alten Parameter.
Ganzer Ordner
RewriteEngine On
RewriteRule ^blog/(.*)$ https://deine-domain.de/ratgeber/$1 [R=301,L]
(.*) fängt den Rest der Adresse ein, $1 setzt ihn hinten wieder an. Aus /blog/ftp-tipps/ wird so /ratgeber/ftp-tipps/.
Komplette Domain umziehen
Diese Regel kommt in die .htaccess der alten Domain:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?alte-domain\.de$ [NC]
RewriteRule ^(.*)$ https://neue-domain.de/$1 [R=301,L]
Pfade bleiben erhalten: alte-domain.de/kontakt/ landet auf neue-domain.de/kontakt/. Danach in der Google Search Console das Tool „Adressänderung“ nutzen.
HTTP auf HTTPS und www vereinheitlichen
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
Eine Regel, ein Sprung: Alle Varianten (http, www, http+www) landen direkt auf https://deine-domain.de. Mehrere hintereinander geschaltete Weiterleitungen kosten Ladezeit.
Dateiendung entfernen (.html)
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/([^.?\s]+)\.html[\s?]
RewriteRule ^ /%1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+?)/?$ $1.html [L]
Seite dauerhaft entfernen (410)
Redirect gone /alte-aktion.html
So baust du die Regeln ein
- Backup anlegen. Die aktuelle .htaccess per FileZilla herunterladen und lokal als
htaccess-backup.txtsichern. - Datei öffnen. In FileZilla Server → Auflistung versteckter Dateien erzwingen, dann Rechtsklick auf
.htaccess→ Ansehen/Bearbeiten. Mehr dazu: .htaccess-Datei erklärt. - Regeln oben einfügen. Vor
# BEGIN WordPressbzw. vor anderen Regeln.RewriteEngine Onreicht einmal pro Datei. - Speichern und hochladen. FileZilla fragt nach dem Speichern, ob die Datei zurück auf den Server soll.
- Testen im privaten Browserfenster und mit
curl -I https://deine-domain.de/alte-seite.html. Die Antwort muss301und die richtigeLocationzeigen.
Typische Fehler
- Weiterleitungsschleife: Das Ziel passt selbst wieder auf die Regel, etwa
RewriteRule ^(.*)$ /neu/$1ohne Bedingung. MitRewriteCond %{REQUEST_URI} !^/neu/ausschließen. - Regel unter dem WordPress-Block: WordPress fängt die Anfrage vorher ab, die Weiterleitung greift nie.
- Browser zeigt alte Weiterleitung: 301 wird gecacht. Zum Testen privates Fenster oder
curlnutzen, während der Entwicklung notfalls erst mit 302 arbeiten. - Sonderzeichen und Leerzeichen: In
RewriteRulesind Punkt, Fragezeichen und Klammern Steuerzeichen. Einen echten Punkt schreibst du als\.. - Server ist nginx: Dann wirkt keine .htaccess. Weiterleitungen über den Kundenbereich des Hosters oder ein Plugin einrichten.
Weiterleitungen in WordPress ohne .htaccess
Bei wenigen Weiterleitungen sind Plugins wie „Redirection“ bequem und überstehen Hosterwechsel, auch zu nginx. Bei hunderten URLs ist die .htaccess schneller, weil die Anfrage gar nicht erst bei PHP ankommt.
Häufige Fragen
Frage antippen, um die Antwort zu öffnen.
Wie lange muss eine 301-Weiterleitung bestehen bleiben?
Google empfiehlt mindestens ein Jahr. Besser: dauerhaft, solange alte Links auf die URL zeigen. Die Zeilen kosten nichts.
Verliere ich durch 301 Ranking?
Nein, nicht nennenswert, wenn das Ziel inhaltlich passt. Verluste entstehen durch Ketten (A → B → C), durch Weiterleitungen auf unpassende Seiten oder auf die Startseite.
Redirect oder RewriteRule – was ist besser?
Redirect für einfache Eins-zu-eins-Weiterleitungen, RewriteRule für Muster, Parameter und Bedingungen. Mische beide möglichst nicht in einer Datei, weil die Module in unterschiedlicher Reihenfolge arbeiten.