feix: bei fehlendem www, dieses anhängen.

Hi !
Hoffe bin im "Server"-Thema richtig.

Ich möchte, dass wenn jemand ein www in der adresse vergisst, er automatisch zu www.domain.tld geleitet wird.

Bisher sieht meine Config so aus:

Server-Name domain.tld

insbesondere erhoffe ich mir dadurch auch einen stabileren Google-PageRank da ich mir habe sagen lassen, dass so wenig Subdomains wie möglich auf einen Content "routen" sollten (bitte korrigieren, falls ich mich verhört habe)

  1. Ich möchte, dass wenn jemand ein www in der adresse vergisst, er automatisch zu www.domain.tld geleitet wird.

    Bisher sieht meine Config so aus:

    Server-Name domain.tld

    Was ist das für ein Server? Falls es ein Apache sein sollte und du Zugriff auf die Serverkonfiguration hast:
    Richte für domain.tld einen separaten virtuellen Host ein und verwende RedirectPermanent zur Weiterleitung. Das könnte in etwa so aussehen:

    <virtualhost *>
      ServerName domain.tld
      DocumentRoot /home/www/domain/blafasel/
      Redirect permanent / http://www.domain.tld/
    </virtualhost>

    Falls es ein Apache sein sollte und du lediglich Zugriff auf die Konfiguration per .htaccess hast, wirst du den für den Server etwas aufwendigeren Weg mittels mod_rewrite gehen müssen, in etwa so (oberste .htaccess):

    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} !www.domain.tld
    RewriteRule (.*) http://www.domain.tld/$1 [R=301,L]

    insbesondere erhoffe ich mir dadurch auch einen stabileren Google-PageRank da ich mir habe sagen lassen, dass so wenig Subdomains wie möglich auf einen Content "routen" sollten (bitte korrigieren, falls ich mich verhört habe)

    Die Zugriffsmöglichkeit mit und ohne wehwehweh ist schon beinahe Standard, Google müsste das halbe Web abstrafen, wenn dies als Nachteil angesehen werden würde. Die Entscheidung für einen Weg, egal ob mit oder ohne, ist gut und richtig, aber wer behauptet, er hätte dadurch eine Pagerank-Änderung erfahren, hat noch ganz andere Probleme mit seinen Seiten. Da ist diese "Domainverschlankung" sozusagen der Tropfen, der dem Fass zum Überlaufen fehlt.
    Natürlich kann man es auch übertreiben und sinnvoll ist es garantiert nicht, denselben Inhalt unter drei Dutzend Domains anzubieten, aber was du jetzt im Auge hast, ist eine rein kosmetische Angelegenheit. Mach's für dich, nicht für Google.
    Und der Pagerank ist eh nur noch Hokuspokusfidibus, Google ist nicht auf dem technischen Stand von vor zehn Jahren stehengeblieben.

    1. Nachtrag:

      Richte für domain.tld einen separaten virtuellen Host ein und verwende RedirectPermanent zur Weiterleitung. Das könnte in etwa so aussehen:

      <virtualhost *>
        ServerName domain.tld
        DocumentRoot /home/www/domain/blafasel/
        Redirect permanent / http://www.domain.tld/
      </virtualhost>

      Der existierende, derzeit die Seiten ausliefernde Servereintrag muss natürlich auf www.domain.tld umgemünzt werden, also etwas in der Art

      <virtualhost *>
        ServerName domain.tld
        ServerAlias www.domain.tld
        ..

      in

      <virtualhost *>
        ServerName www.domain.tld
        ..

      abgeändert werden. Es stehen am Ende also zwei <virtualhost>-Blöcke in der Konfiguration, einer mit "ServerName www.domain.tld" (Haupteintrag), einer mit "ServerName domain.tld" (Weiterleitungseintrag) und _kein_ "ServerAlias" mit den betreffenden Domains.

    2. wozu brauch ich einen virtual host wenn die domain die einzige ist die auf meinen server routet?
      ich behandle den host direkt in der default-server.conf (SuSE Linux)

      1. Hallo feix,

        wozu brauch ich einen virtual host wenn die domain die einzige ist die auf meinen server routet?
        ich behandle den host direkt in der default-server.conf (SuSE Linux)

        Es erleichtert die Umstellung, falls du mal eine zweite Domain oder eine Subdomain auf deinem Server nutzen willst.

        Schöne Grüße,

        Johannes

      2. wozu brauch ich einen virtual host wenn die domain die einzige ist die auf meinen server routet?

        Nein, du hast zwei Domains, www.domain.tld und domain.tld, und die möchtest du getrennt behandeln.

        Irgendwie muss der Server schließlich entscheiden, ob er umleiten soll oder nicht: Entweder über eine für den Zweck der Domainwahl vorgesehene Funktion, die nur einmalig beim Webserverstart eingerichtet werden muss und auf ihre Aufgabe spezialisiert ist (<virtualhost>), oder über eine allgemeine Funktion, die bei jedem einzelnen Abruf irgendeiner Datei (Webseite, Grafik, CSS-Datei, etc) neu eingelesen, umgesetzt und angewandt werden muss (.htaccess mit mod_rewrite).

        Der Effekt ist unterm Strich der gleiche, die Leistungseinbußen bei der .htaccess-Variante sind vorhanden, aber vernachlässigbar, trotzdem halte ich die <virtualhost>-Variante für wesentlich eleganter.