301 Weiterleitung per htaccess – Aber wie?

Immer wieder gibt es Anfragen, wie eine 301 Weiterleitung eingerichtet wird. Hierzu habe ich mir die wichtigsten Punkte ausgesucht, die dem einen oder anderen als Vorlage dienen könnten.

Meistens wird eine 301 Weiterleitung von NON-www zu www erstellt. Doch bevor man sich für NON-www oder www entscheidet, sollte eine kleine Abfrage in Google gestartet werden um zu erfahren, mit welcher Version (NON-www oder www) die meisten Seiten indexiert sind.

Die entsprechende Abfrage wird bei Google mit den folgenden Zeile gemacht:

  • Erste Abfrage ohne www: [html]site:domain.de[/html]
  • Zweite Abfrage mit www: [html]site:www.domain.de[/html]

Hat man sich für eine Variante entschieden, kann die entsprechende 301 Weiterleitung erstellt werden.

Vorab möchte ich noch bemerken, dass die entsprechende .htaccess Datei nur auf einem Apache Server mit aktiviertem mod_rewrite funktioniert.

Zu aller erst legt man eine neue Datei mit der Bezeichnung „.htaccess“ an. In der ersten Zeile wird die RewriteEngine mit der folgenden Zeile aktiviert:

[html]RewriteEngine on[/html]

Anschließend können die entsprechenden Weiterleitungen eingerichtet werden:

301 Weiterleitung von NON- www zu www

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

ODER

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

301 Weiterleitung von www zu NON- www

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

301 Weiterleitung von X zu Y

[html]Redirect 301 /test.html http://www.domainname.de/test/[/html]

Dem einen oder anderen ist wahrscheinlich schon aufgefallen, dass nach einem Klick auf „Home“ oder „Startseite“ je nach System und Programmierung noch die index.html bzw. .php Datei angehängt wird. Somit ist die Startseite über zwei unterschiedliche URLs aufrufbar:

www.domainname.de & www.domainname.de/index.html

Auch diese index.html oder .php kann mittels der .htaccess Datei zu der Hauptdomain weitergeleitet werden.

301 Weiterleitung der index.html oder index.php (Startseite) zur Hauptdomain:

Für die index.html gilt:

[html] RewriteCond %{THE_REQUEST} ^[A-Z]+ /index.html
RewriteRule ^index.html/?(.*) /$1? [L,R=301] [/html]

Für die index.php wird einfach nur „html“ in „php“ abgeändert:

[html] RewriteCond %{THE_REQUEST} ^[A-Z]+ /index.php
RewriteRule ^index.php/?(.*) /$1? [L,R=301] [/html]

301 Weiterleitung (andere DC Domains zur Haupt-Domain + NON- www zu www)

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

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

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