Redirects sind so wichtig wie der Sand am Meer. Zumindest, wenn man im WWW und vor allem in der SEO-Welt überleben möchte.
Hier ein paar Fundstücke, mit denen wir täglich arbeiten – füge diese in Deine .htaccess ein (Apache Webserver)
Alle .htaccess Befehle habe ich Dir auch nochmal auf GitHub zusammengestellt.
Einen einzelnen Beitrag umleiten
Beachte dabei, dass Du nur die neue URL komplett ausschreibst.
Übrigens steht das 301 für einen permanenten/dauerhaften Redirect. Möchtest Du dies nur temporär machen, wähle 302.
Redirect 301 /alterSlug https://deineDomain.de/neuerSlug
Redirect komplette Domain auf neue Domain
Dabei werden die Inhalte 1:1 übertragen.
Das heißt: www.deineAlteSeite.de/beitrag wird zu www.deineNeueSeite.de/beitrag
RewriteEngine On RewriteCond %{HTTP_HOST} ^deineAlteDomain.de$ RewriteCond %{HTTP_HOST} ^www.deineAlteDomain.de$ RewriteRule (.*)$ https://deineNeueDomain.de/$1
Redirect bestimmte Dateiendungen
RedirectMatch 301 (.*).html$ https://deineDomain.de$1.php
Redirect alles zu HTTPS
Habe ich immer drin.
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.(.*)$ RewriteRule ^(.*)$ https://%1/$1 RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Redirect alles zu HTTPS://WWW
Die Subdomain www wird immer weniger genutzt. Ich finde diese dennoch toll und werde es auch bald auf Lightweb-media.de wieder einfügen. Dies nutze ich dann z.B. für die Optimierung statischer Ressourcen, die keine Cookies setzen sollen. Stichwort: Cookie Free Domain
RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} !^www. RewriteCond %{HTTP_HOST} ^(.*)$ RewriteRule (.*) https://www.%1/$1
Trimme den Facebook Slug
Wer kein Tracking möchte oder ein paar Scripte nicht so funktionieren mit dem Parametern von Facebook:
RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} ^(.*)(?:^|&)fbclid=(?:*)((?:&|$).*)$ RewriteCond %1%2 (^|&)(.*|$) RewriteRule ^(.*) /$1?%2
Redirect Startseite zu einem Verzeichnis, der Rest aber zum Root der neuen Domain
Okay – eine heftige Überschrift.
Zur Erklärung: Wenn man Websites zusammenlegt, kann es vorkommen das die alte Startseite auf ein Kategorieverzeichnis der neuen Website zeigen soll. Möchte man aber seine Kategorie nicht mit im Slug haben, kommt es unweigerlich zu unzähligen zusätzlichen Redirects, die man sich sparen kann.
www.heavyweb-media.de soll mit www.lightweb-media.de zusammengelegt werden. Auf Lightweb-media.de sind aber noch andere Seiten, sodass die alte Seite in die Kategorie „heavy“ geleitet wird.
Jetzt gibt es Webmaster (Augenzwinker zu meinem Freund Kai), die zwar die Startseitenlinks (und darum geht es im Wesentlichen) auf die Kategorieseite bringen möchten, aber alle anderen URLs (Slugs) normal, ohne Kategorie im Slug ausgespielt werden.
Verdammt. Schwierig erklärt. Hilft mir mal einer? Ab in die Kommentare!
www.heavyweb-media.de -> www.lightweb-media.de/heavy/
www.heavyweb-media.de/beitrag/ -> www.lightweb-media.de/beitrag/
RewriteRule . https://lightweb-media.de/%{REQUEST_URI} RewriteRule ^ https://lightweb-media.de/heavy/
Eine Domain aufteilen und auf verschiedene andere Domains weiterleiten
Schon einmal ein Portal zusammengelegt? Schön alles in verschiedene Kategorien (so wie oben z. b.) gelegt?
Jetzt wollen wir die Startseite sowie die Kategorieseiten getrennt von einander weiterleiten.
Alles was nicht in den folgenden 5 Kategorien ist, wird auf Lightweb-media.de weitergeleitet.
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !^/heavy(/|$) RewriteCond %{REQUEST_URI} !^/light(/|$) RewriteCond %{REQUEST_URI} !^/slow(/|$) RewriteCond %{REQUEST_URI} !^/fast(/|$) RewriteCond %{REQUEST_URI} !^/hard(/|$) RewriteRule ^(.*)$ https://lightweb-media.de/$1 RedirectMatch 301 ^/heavy/(.*) https://heavyweb-media.de.de/$1 RedirectMatch 301 ^/light/(.*) https://lightweb-media.de/$1 RedirectMatch 301 ^/slow/(.*) https://slowweb-media.de/$1 RedirectMatch 301 ^/fast/(.*) https://fastweb-media.de/$1 RedirectMatch 301 ^/hard/(.*) https://hardweb-media.de/$1
Redirect einer Domain, aber bestimmte Verzeichnisse auslassen
Wichtig, wenn z.B. Spamlinks auf bestimmten Unterseiten zeigen. In diesem Beispiel werden /spamunterseite1 + 2 nicht weitergeleitet.
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{THE_REQUEST} !/spamunterseite1 RewriteCond %{THE_REQUEST} !/spamunterseite2 RewriteCond %{HTTP_HOST} ^alteSeite.de$ RewriteCond %{HTTP_HOST} ^www.alteSeite.de$ RewriteRule (.*)$ https://neueSeite.de/$1 </IfModule>
Alle .htaccess Befehle habe ich Dir auch nochmal auf GitHub zusammengestellt.
Hast Du Fragen? Hast Du Anmerkungen?