Domainweiterleitung per htaccess

http://de.wikipedia.org/wiki/Domainweiterleitung

Für Besitzer eines Apache Webservers, bei dem .htaccess aktiviert ist, empfiehlt es sich, die Weiterleitung der Domain via .htaccess vorzunehmen. Dabei handelt es sich um eine serverseitige Weiterleitung. Das hat folgende Vorteile: zum einen haben ein Großteil aller Apache-Server .htaccess und die Rewrite-Engine standardmäßig aktiviert, zum anderen sind serverseitige Weiterleitungen sehr benutzer- und suchmaschinenfreundlich. Der Besucher wird außer der augenscheinlichen Änderung der URL nichts von dieser Weiterleitung bemerken, da kaum Verzögerungen auftreten, und auch Suchmaschinen werten Weiterleitungen über diese Methode nicht negativ, im Gegenteil, sie hilft oft sogar Duplicate Content (die mehrfache Indexierung des gleichen Inhalts) zu vermeiden.[1]

Eine .htaccess-Datei wird bei dieser Art von Weiterleitung ohne Dateinamen, jedoch mit Punkt und Endung in das Root-Verzeichnis des jeweiligen Webspace eingefügt.

Um permanent (vgl. 301-Redirect) auf die Subdomain „www.“ zu leiten, müsste die .htaccess-Datei folgendermaßen aussehen:

  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} !^www\.example\.net$ [NC]
  3. RewriteRule ^(.*)$ http://www.example.net/$1 [R=301,L]

Wer umgekehrt von der Subdomain „www.“ auf die Hauptdomain weiterleiten möchte, der müsste den Code folgendermaßen anpassen:

  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^www.example.net$ [NC]
  3. RewriteRule ^(.*) http://example.net/$1 [L,R=301]

Beispiel einer Htaccess-Datei :

RewriteEngine on

# www.traumrock.de auf www.traum-rock.de

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

# traumrock.de auf www.traum-rock.de

RewriteCond %{HTTP_HOST} ^traumrock\.de$ [NC]
RewriteRule ^(.*)$ http://www.traum-rock.de [R=301,L]

# www.traumrock.com auf www.traum-rock.de

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

# traumrock.com auf www.traum-rock.de

RewriteCond %{HTTP_HOST} ^traumrock\.com$ [NC]
RewriteRule ^(.*)$ http://www.traum-rock.de/$1 [R=301,L]

syntaktisch muss eine OR-Verknüpfung zwischen mehreren RewriteConds folgendermaßen aussehen:

RewriteEngine on RewriteCond %{HTTP_HOST} ^subdomain\.hauptdomain\.de [OR] RewriteCond %{HTTP_HOST} ^www\.subdomain\.hauptdomain\.de RewriteRule ^(.*)$ unterverzeichnis/$1

Ein [OR] verknüpft die betreffende Bedingung hierbei jeweils mit der folgenden

Es geht aber auch kürzer, indem du das optionale www.- einfach als (www\.)? wiedergibst:

RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.hauptdomain\.de RewriteRule ^(.*)$ unterverzeichnis/$1