Weiterleitung mit .htaccess

Anleitung zur Einrichtung von Weiterleitungen mithilfe der Konfigurationsdatei .htaccess.

Die Datei .htaccess ermöglicht es, Weiterleitungen (301 oder 302) auf Website-Ebene zu konfigurieren, ohne den Anwendungscode zu ändern. Sie befindet sich im Stammverzeichnis Ihrer Website (üblicherweise /public_html oder ein gleichwertiges Verzeichnis). Falls die Datei nicht vorhanden ist, erstellen Sie sie (beachten Sie, dass der Name mit einem Punkt beginnt).

Alle Regeln erfordern das aktivierte Modul mod_rewrite:

RewriteEngine On

Weiterleitung von HTTP zu HTTPS

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Alternativer Variant (wenn der Server den Header X-HTTPS verwendet):

RewriteEngine On
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Weiterleitung von HTTPS zu HTTP

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}

Weiterleitung von einer Seite zu einer anderen

Redirect 301 /test-1/ http://site.ru/test-2/

Alternative mit Rewrite:

RewriteCond %{REQUEST_URI} ^/test/$
RewriteRule ^.*$ http://site.ru/new-test/? [R=301,L]

Weiterleitung von www zu ohne www (Hauptspiegel ist die non-www-Domain)

RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

Weiterleitung von ohne www zu www (Hauptspiegel ist die www-Domain)

RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

Weiterleitung von abschließendem Schrägstrich zu ohne Schrägstrich (gesamte Website)

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteRule ^(.*)\/$ /$1 [R=301,L]

Weiterleitung von ohne Schrägstrich zu mit abschließendem Schrägstrich

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]

Kombinierte Weiterleitung: non-www + abschließender Schrägstrich

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

Kombinierte Weiterleitung: www + abschließender Schrägstrich

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]

Kombinierte Weiterleitung: www + ohne abschließenden Schrägstrich

RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

Kombinierte Weiterleitung: non-www + ohne abschließenden Schrägstrich

RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301]

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

Weiterleitung nur von site.ru/index.php (ohne GET-Parameter) zur Hauptdomain site.ru

RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^\z
RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

index.php aus URLs entfernen und dabei GET-Parameter erhalten

Beispiel: site.ru/index.php?n=1 zu site.ru/?n=1

RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

Massenweiterleitung für index.php, index.html, index.htm (z. B. Joomla)

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/ 
RewriteRule ^(.*)index\.(php|html|htm)$ http://site.ru/$1 [R=301,L]

Dynamische URL mit GET-Parameter auf statische Seite weiterleiten

Einfache Variante:

RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]

Mit Seitenangabe:

RewriteCond %{REQUEST_URI} /test/
RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]

Alle Seiten einer Domain auf die Hauptseite einer anderen Domain weiterleiten

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/ [L,R=301]

Gesamte Website-Struktur auf eine neue Domain weiterleiten (Seiten auf gleiche Pfade)

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]

Unsere Produkte und Dienste

WebhostingLäuft auf ultraschnellen NVMe-Laufwerken. Geeignet für Websites jeder Komplexität.
Bestellen
VPSFlexible Cloud-Infrastruktur mit vollem Root-Zugriff.
Bestellen
Dedizierte ServerBare-Metal-Server für maximale Leistung.
Bestellen
Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns