Entscheidet man sich nun – wie auch ich – für Subdomain, steht man evtl. ohne es zu wissen, vor einem neuen Problemchen. Denn eine Subdomain ist ein Verzeichnis innerhalb der Hauptseite. Nur das eben dieses Verzeichnis auch eine Adresse hat. Dennoch ist die Subdomain genau so als Verzeichnis erreichbar.

Sollte nun, durch irgendeinen „dummen“ Zufall – man kann ja nie so dumm denken wie es letztendlich kommt – irgendwo auf irgendeiner Seite statt der Subdomain das Verzeichnis verlinkt sein, entsteht sogenannter Duplicate Content.

Mit anderen Worten, Google stolpert drüber, indiziert das Verzeichnis und bemerkt irgendwann, das der Inhalt identisch ist, mit dem einer „anderen“ Adresse, nämlich mit dem der Subdomain.

Im ungünstigsten Falle kann es nun passieren, dass zumindest eine der beiden Seiten aus dem Index fliegt, und somit bei Google nicht gelistet wird. Mit etwas Pech ist das die Subdomain – worst case.

Um dies nun zu verhindern, ist es sinnvoll dafür zu sorgen, das alle Zugriffe auf das Verzeichnis sofort auf die Subdomain umgeleitet werden.

Zur Realisierung erstellt man – wenn noch nicht vorhanden – eine .htaccess im Verzeichnis, in dem die Daten der Subdomain liegen.

Hinweis:
Beispiel:
Subdomain: http://foo.bar.com
Verzeichnis der Subdomain: http://www.bar.com/foo

Die .htaccess gehört in das Verzeichnis http://www.bar.com/foo

In die Datei schreibt man nun folgende Zeilen hinein:

1
2
3
RewriteEngine on
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^(www\.)?(bar\.com)/foo(/(.*))?$ [NC]
RewriteRule .* http://foo.%2/%4 [R=301,L]

Hinweis:
foo und bar bitte durch jeweils Hauptdomain und Verzeichnis/Subdomain ersetzen. Auch die TLD (im Beispiel .com) anpassen

So bald die .htaccess-Datei an der richtigen Stelle liegt (im Verzeichnis foo) wird man bei Zugriff auf http://www.bar.com/foo sofort auf http://foo.bar.com umgeleitet. Dies passiert dann auch Google und somit wird nur noch die Subdomain indiziert.

12 Meinungen zu “Verzeichnis auf Subdomain umleiten

  1. Moin,
    vielen Dank für die Anleitung. Haut fast perfekt hin. Nur wenn ich www.subdomain.domain.tld aufrufe, wird diese nicht auf subdomain.domain.tld weitergeleitet.
    Gibt es dafür auch eine Lösung?

    LG
    Nils

  2. Hallo Nils,

    Das sollte so eigentlich nicht auftreten, da die gleiche Regel in meiner .htaccess steht. Und ich habe das von Dir beschriebene Phänomen gerade getestet. Es wird hier direkt auf blog.ppfeufer.de geleitet, wenn ich ein www davor setze.

    Wenn Es Dir nichts ausmacht, würde ich gerne einen Blick in Deine .htaccess werfen, vielleicht fällt mir da was auf.

    Versuch aber vorher mal Folgendes direkt nach der Verzeichnisweiterleitung in Deiner .htaccess.

    1
    2
    RewriteCond %{HTTP_HOST} ^www\.subdomain.domain\.tld$ [NC]
    RewriteRule ^(.*)$ http://subdomain.domain.tld/$1 [R=301,L]
  3. Uihh…
    …mit einer so schnellen Antwort hätte ich gar nicht gerechnet *respekt*.
    Hier mal die htaccess:

    RewriteEngine on
    RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^(www\.)?(schmeers-hoff\.de)/forum(/(.*))?$ [NC]
    RewriteRule .* http://reiter-forum-verden.%2/%4 [R=301,L]

    BTW: Wie fügt man das hier als Code ein?

  4. Hallo Nils,

    Also, die Zeilen sehen soweit korrekt aus. Warum Du das Phänomen mit www hast, kann ich nur mutmaßen, und das lass ich einfach mal.
    Versuch mal bitte die folgenden vier Zeilen.

    1
    2
    3
    4
    RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^(www\.)?(schmeers-hoff\.de)/forum(/(.*))?$ [NC]
    RewriteRule .* http://reiter-forum-verden.%2/%4 [R=301,L]
    RewriteCond %{HTTP_HOST} ^www\.reiter-forum-verden.schmeers-hoff\.de$ [NC]
    RewriteRule ^(.*)$ http://reiter-forum-verden.schmeers-hoff.de/$1 [R=301,L]

    Zu Deiner Frage, Code einfügen geht recht einfach.

    1
    [ cc lang="sprache" ] hier den Code rein [ /cc ]

    Wichtig:
    Leerzeichen entfernen und Sprache durch die Programmiersprache ersetzen. Also PHP, HTML, XML und so weiter. Für .htaccess einfach „text“ einsetzen.
    Genutzt wird dafür das Plugin „CodeColorer“ zum Syntaxhighlight was dann den Code umwandelt.

  5. Wow…PERFEKT!
    So wird auch der Aufruf mit www.subdomain.domain.tld ohne www ausgegeben.

    Vielen Dank für deine Hilfe!!!

  6. Sehr interessant! Meine Frage: Klappt das auch umgekehrt? Ich würde gerne eine Subdomain auf ein Verzeichnis umleiten. Mache ich das am besten per DNS? Oder per .htaccess? Mir fällt keine Möglichkeit ein, das per DNS zu machen.

    Grüße
    Niklas

  7. RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{HTTP_HOST} radio.example.tld
    RewriteCond %{REQUEST_URI} !^/radio/
    RewriteRule ^(.*)$ /radio/$1 [L]

    so ungefähr?

  8. Hallo Niklas,

    Eine Subdomain ist bereits ein Verzeichnis.
    Aber an Hand Deines Suchstrings mit dem Du hier her gelangt bist – Subdomain umleiten auf / – denke ich, Du möchtest eine bestehende Subdomain einfach auf das Root-Verzeichnis der Hauptdomain zeigen lassen.

    Das geht natürlich einerseits mit einer .htaccess-Regel. Eleganter ist aber die Lösung über das Konfigurationsinterface des Providers. Ihr habt sicherlich irgendwo so was wie „Plesk“ oder „Confixx“ oder Ähnliches. Also eine Weboberfläche wo ihr E-Mailadressen und Subdomains anlegen könnt. Dort einfach einloggen und de Zielpfad der Subdomain ändern.

  9. Moin H.-Peter,
    darf ich auch noch mal mit einer Frage auf Dich zu kommen?
    Folgende Lage: In unserem Onlineshop haben wir einen Produktbereich in einen Subshop ausgelagert. Natürlich gibt es externe Links, die auf den alten Pfad verweisen. Wie bringe den Besuchern und Google bei, dass es nun auf einem Subshop liegt?
    Alter Pfad: http://www.zebrainsectscreens.com/zebra-vorhaenge/schiebevorhang/173/scherli-flaechenvorhang-maja-245×60-cm
    Neuer Pfad: http://gardinen.zebrainsectscreens.com/zebra-vorhaenge/schiebevorhang/173/scherli-flaechenvorhang-maja-245×60-cm
    Mit dem aktuellen eintrag in der htaccess ist der alte Pfad immerhin nicht mehr erreichbar, aber es wird ein 404 ausgeworfen – hilft auch nicht so richt…
    Hast Du einen tipp?
    Besten Dank und Gruß, Hotte

    1
    2
    RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^(www\.)?(zebrainsectscreens\.com)/zebra-vorhaenge(/(.*))?$ [NC]
    RewriteRule .* http://gardinen.zebrainsectscreens.com/%2/%4 [R=301,L]

Schreibe einen Kommentar

Ihre Email-Adresse wird nicht veröffentlicht. Pflichtfelder sind durch * markiert.

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>