Installationsanleitungen

301-Weiterleitung mit .htaccess

Wir zeigen, wie Sie unter Apache mit .htaccess Weiterleitungen für www, HTTPS und alte Adressen einrichten, ohne SEO-Wert zu verlieren, wie Sie sie testen und Schleifenfehler beheben.

Aurora YazılımRedaktionsteam 6 Min. Lesezeit
301-Weiterleitung mit .htaccess
Wie richtet man eine htaccess-Weiterleitung ein?

Für eine htaccess-Weiterleitung muss unter Apache mod_rewrite aktiv sein, und die Regeln gehören in die .htaccess-Datei im Stammverzeichnis der Website, nach der Zeile RewriteEngine On. Bei dauerhaften Umzügen wird das Flag R=301 verwendet; so wechseln Browser und Suchmaschinen zur neuen Adresse, und der Ranking-Wert der alten Adresse bleibt weitgehend erhalten. Testen Sie die Regeln zuerst mit curl -I.

Was ist eine 301-Weiterleitung, und wann braucht man sie?

Eine 301-Weiterleitung ist eine HTTP-Antwort, die mitteilt, dass eine Adresse dauerhaft zu einer anderen umgezogen ist. Der Browser leitet den Besucher automatisch zur neuen Adresse, Suchmaschinen ersetzen die alte Adresse im Index mit der Zeit durch die neue.

302 und 307 sind dagegen vorübergehende Weiterleitungen; sie werden bei kurzfristigen Situationen wie einer Kampagne oder einer Wartungsseite eingesetzt. Wer bei einer dauerhaften Änderung eine temporäre Weiterleitung nutzt, riskiert, dass die Suchmaschine die alte Adresse weiter im Index behält.

Weiterleitungen sind meist in diesen Fällen nötig: Umstellung der Website auf HTTPS, Wahl zwischen der Variante mit und ohne www, geänderte Seitenadressen, Domainwechsel oder Umzug auf eine neue Website. Bei einem Relaunch ist die Zuordnung der alten Adressen Stück für Stück einer der kritischsten Schritte des SEO-optimierten Webdesigns.

Voraussetzungen: mod_rewrite und AllowOverride

Die .htaccess-Datei funktioniert nur auf Apache und Apache-kompatiblen Servern (etwa LiteSpeed). Nginx liest diese Datei nicht; wer Nginx nutzt, muss dieselben Regeln in den Server-Block schreiben, Details dazu stehen in unserem Ratgeber zur Nginx-Installation.

Beim Shared Hosting ist mod_rewrite meist aktiv, und Sie können direkt mit den Regeln beginnen. Verwalten Sie Ihren Server selbst, müssen Sie das Modul aktivieren und in der Virtual-Host-Konfiguration AllowOverride freigeben; andernfalls ignoriert Apache die .htaccess-Datei vollständig.

bashUbuntu / Debian
sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/ornek.com.conf
sudo apache2ctl configtest
sudo systemctl restart apache2
apacheInnerhalb des Virtual Hosts
<Directory /var/www/ornek.com/public_html>
    AllowOverride All
    Require all granted
</Directory>

HTTPS- und www-Weiterleitung

Eine Website lässt sich mindestens unter vier verschiedenen Adressen aufrufen: http und https, mit und ohne www. Am saubersten ist es, eine einzige Hauptadresse zu wählen und die übrigen drei in einem Schritt dorthin weiterzuleiten. Verkettete Weiterleitungen (erst auf HTTPS, dann auf www) sind langsam und verschwenden Crawl-Budget.

Bevor Sie auf HTTPS weiterleiten, stellen Sie sicher, dass auf dem Server ein gültiges Zertifikat liegt; die Einrichtung haben wir im Ratgeber SSL-Zertifikat installieren beschrieben. Wird ohne Zertifikat auf HTTPS weitergeleitet, sehen Besucher eine Sicherheitswarnung.

Warum HTTPS heute keine Option mehr, sondern Pflicht ist, und welche Zertifikatstypen es gibt, haben wir im Beitrag Was ist ein SSL-Zertifikat ausführlich erklärt. Nachdem Sie Ihre Hauptadresse gewählt haben, stellen Sie sicher, dass auch Canonical-Tags, Sitemap und interne Links diese Adresse verwenden; sonst senden Sie der Suchmaschine widersprüchliche Signale.

Erzwingen von ohne www und HTTPS

Die folgende Regel leitet die Anfrage in einem Schritt auf die https-Adresse ohne www um, wenn HTTPS ausgeschaltet ist oder die Adresse mit www beginnt. Die letzte Bedingung erfasst den Domainnamen, %1 verwendet diesen erfassten Wert.

apache
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

Erzwingen von mit www und HTTPS

Ist Ihre Hauptadresse die Variante mit www, schreiben Sie die Regel so.

apache
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,R=301]

Umzug von alter Seite, Ordner und Domain

Ändert sich die Adressstruktur, muss jede alte Seite inhaltlich auf die nächstpassende neue Seite weiterleiten. Alle alten Adressen auf die Startseite umzuleiten wirkt einfach, wird von Suchmaschinen aber meist als Soft 404 gewertet, und der Wert der alten Seite geht verloren.

Die Reihenfolge der Regeln ist wichtig: Spezielle Regeln oben, allgemeine unten. Apache verarbeitet Regeln von oben nach unten, und das Flag L beendet nach der passenden Regel die Verarbeitung in diesem Durchlauf.

Beginnen Sie bei großen Umzügen mit einer Weiterleitungsübersicht: in einer Tabelle links die alte Adresse, rechts die neue, daneben Traffic und Zahl der Links der Seite. Diese Liste hilft Ihnen sowohl beim Schreiben der Regeln als auch bei der Kontrolle nach dem Livegang. Für Seiten ohne Gegenstück, die tatsächlich entfernt wurden, ist eine 410- oder 404-Antwort statt einer Weiterleitung das ehrlichere Signal.

  • Bei einfachen Umzügen einzelner Seiten lässt sich auch die Zeile Redirect 301 von mod_alias verwenden; sie in derselben Datei nicht mit RewriteRule zu mischen, erspart Überraschungen bei der Reihenfolge.
  • Ziehen Sie die Liste der alten Adressen aus der Search Console und der alten Sitemap; lassen Sie keine wichtige Seite aus.
  • Nutzen Sie bei einem Domainwechsel auch das Tool Adressänderung in der Search Console.
apache
RewriteEngine On

# Tek sayfa
RewriteRule ^eski-sayfa\.html$ /yeni-sayfa/ [R=301,L]

# Ordner verschieben: /haberler/... -> /blog/...
RewriteRule ^haberler/(.*)$ /blog/$1 [R=301,L]

# Weiterleitung ohne Query-String
RewriteCond %{QUERY_STRING} ^id=15$
RewriteRule ^urun\.php$ /urunler/deri-canta/ [R=301,L,QSD]

# Domainwechsel (in der .htaccess der alten Domain)
RewriteCond %{HTTP_HOST} ^(www\.)?eskialan\.com$ [NC]
RewriteRule ^(.*)$ https://yenialan.com/$1 [R=301,L]

.html-Endung entfernen

Bei statischen Websites möchten Sie vielleicht saubere Adressen wie /hakkimizda statt /hakkimizda.html verwenden. Dafür sind zwei Regeln nötig: Die eine leitet Anfragen mit Endung per 301 auf die Adresse ohne Endung um, die andere ordnet die Anfrage ohne Endung im Hintergrund der passenden .html-Datei zu.

In der ersten Regel ist die Verwendung von %{THE_REQUEST} wichtig; diese Variable enthält die ursprüngliche Anfrage des Browsers und verhindert, dass das interne Umschreiben erneut zur Weiterleitung wird und eine Endlosschleife entsteht.

apache
RewriteEngine On

# /sayfa.html -> /sayfa (301)
RewriteCond %{THE_REQUEST} \s/([^.\s]+)\.html[\s?] [NC]
RewriteRule ^ /%1 [R=301,L]

# Anfrage /sayfa auf die Datei sayfa.html abbilden (interne Umschreibung)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L]

Wie teste ich Weiterleitungen?

Browser speichern 301-Antworten im Cache. Korrigieren Sie eine falsche Regel, kann Ihr Browser die alte Weiterleitung weiter im Gedächtnis behalten; verwenden Sie deshalb beim Testen zuerst R=302 und stellen Sie auf 301 um, wenn alles stimmt. Am zuverlässigsten testen Sie im privaten Fenster oder über die Kommandozeile.

Der curl-Befehl zeigt Antwortcode und Location-Header deutlich an. Mit dem Parameter -L können Sie die gesamte Kette verfolgen und, falls es mehrere Schritte gibt, auf eine einzige Weiterleitung reduzieren.

  • Schreiben Sie in der Windows PowerShell curl.exe statt curl; andernfalls kann ein anderer Befehl ausgeführt werden.
  • Zum lokalen Testen können Sie ein Paket mit Apache wie XAMPP verwenden.
  • Beobachten Sie nach dem Livegang einige Wochen lang die Berichte zu Weiterleitungen und zur Indexierung in der Search Console.
bashmacOS, Linux und Windows 10/11
curl -I http://www.ornek.com/eski-sayfa.html
# Um die gesamte Kette zu sehen
curl -sIL http://ornek.com | grep -iE '^(HTTP|location)'

Häufige Fehler und Lösungen

Die meisten Weiterleitungsprobleme zeigen sich an einigen typischen Symptomen. Das Apache-Fehlerprotokoll (unter Ubuntu /var/log/apache2/error.log) verrät meist, in welcher Zeile das Problem liegt.

SymptomMögliche Ursache und Lösung
500 Internal Server ErrorTippfehler oder mod_rewrite ist aus; machen Sie die zuletzt eingefügte Zeile rückgängig und sehen Sie ins Fehlerprotokoll.
ERR_TOO_MANY_REDIRECTSRegeln leiten ineinander weiter, oder hinter einem Proxy wird HTTPS nicht erkannt.
Regel greift überhaupt nichtAllowOverride None oder Datei im falschen Ordner; prüfen Sie die Virtual-Host-Konfiguration.
Neue Adresse liefert 404Der Zielpfad ist falsch oder relativ geschrieben; setzen Sie vor das Ziel ein /.
Korrektur nicht sichtbarDer Browser verwendet die alte 301 aus dem Cache; testen Sie im privaten Fenster oder mit curl.

Hinter Cloudflare oder einem Load Balancer

Wird SSL am Proxy beendet, erscheint die Anfrage am Server immer als HTTP, und die Bedingung %{HTTPS} off führt zu einer Endlosschleife. Prüfen Sie in diesem Fall den vom Proxy gesendeten Header X-Forwarded-Proto oder richten Sie die HTTPS-Weiterleitung im Proxy-Panel ein.

apache
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Häufig gestellte Fragen

01Überträgt eine 301-Weiterleitung den SEO-Wert vollständig?

Eine dauerhafte Weiterleitung auf das richtige Ziel überträgt den größten Teil der Signale der alten Adresse auf die neue. In der Übergangsphase können die Rankings dennoch vorübergehend schwanken; Weiterleitungen auf Ziele ohne passenden Inhalt führen dagegen zu Wertverlust.

02Wie lange sollte ich Weiterleitungen beibehalten?

Entfernen Sie Weiterleitungen nicht, solange andere Websites auf die alten Adressen verlinken. In der Praxis ist es am sichersten, sie mindestens ein Jahr, bei wichtigen Seiten unbefristet zu behalten.

03Braucht man auch für den abschließenden Schrägstrich eine Weiterleitung?

Suchmaschinen können /hakkimizda und /hakkimizda/ als getrennte Seiten ansehen. Entscheiden Sie sich für eine Variante und leiten Sie die andere per 301 darauf um; so wird derselbe Inhalt nicht unter zwei Adressen indexiert. Wichtig ist, dass die Wahl auf der gesamten Website einheitlich ist.

04Verlangsamen viele Weiterleitungen die Website?

Einige hundert Regelzeilen verursachen keine spürbare Verlangsamung, doch da .htaccess bei jeder Anfrage gelesen wird, bringen Tausende Zeilen zusätzliche Last. In dieser Größenordnung ist es effizienter, die Regeln in die Virtual-Host-Konfiguration oder per RewriteMap in eine Zuordnungsdatei zu verlagern.

Korrekt eingerichtete 301-Weiterleitungen sorgen dafür, dass bei einer Adressänderung Ihre Arbeit und Ihr Traffic nicht verloren gehen. Möchten Sie bei einem Relaunch die Zuordnung alter Adressen, Weiterleitungen und technische SEO-Prüfungen gemeinsam angehen, lernen Sie unser SEO-optimiertes Webdesign kennen, für Geschwindigkeitsverbesserungen nach dem Livegang unsere Speed- & Performance-Optimierung. Mit unserer Unterstützung bei SEO & Analyse behalten Sie Ihre Suchdaten im Blick, und bei Umzugsprojekten für eine E-Commerce-Infrastruktur arbeiten Sie mit unserem Webdesign-Team zusammen.