Ich bevorzuge für meine Projekte, wie auch hier bei www.redirect301.de, das dreifache W zum Zeichen einer World Wide Web Anwendung vor dem Domainnamen. Über den Sinn und Unsinn dieser Subdomain kann man geteilter Meinung sein, aber das ist in diesem Artikel nicht das Thema.
Dieser Beitrag widmet sich der Konfiguration eines Aufrufs der eigenen Webseite ohne dem überflüssigen „www.“ vor dem Domainnamen und wie sich diese Aufrufe einfach und Suchmaschinenfreundlich von www.domain.de auf domain.de (ohne www.) mit Hilfe der htaccess-Datei umleiten lassen. Den umgekehrten Fall findet ihr im Artikel Webadresse immer mit www.

Code-Beispiel zum Einbinden in die htaccess-Datei

Die htaccess-Datei im Wurzelverzeichnis eures Webprojekts benötigt die folgenden 3 Zeilen Apache-Konfigurationscode. Die Funktionsweise einer htaccess-Datei und wie diese angelegt wird, ist hier ausführlich beschrieben.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.redirect301\.de$
RewriteRule ^(.*)$ http://redirect301.de/$1 [L,R=301]

Was bedeuten diese 3 Zeilen?

Als erstes aktivieren wir das Apachemodul mod_rewrite (RewriteEngine on) für unser Webprojekt. In Zeile 2 legen wir eine Bedingung (RewriteCond) fest. Diese überprüft, ob in der HTTP-Protokollanfrage der Hostname (%{HTTP_HOST}) www.redirect301.de ist. Die Bedingung gilt in diesem Beispiel nur dann als erfüllt, wenn der Hostname mit www beginnt (^) und mit .de endet ($). Ein möglicher Schreibfehler wie wwww oder ww usw. würde hier unberücksichtigt bleiben. In der 3. Zeile wird einfach alles (.*) was die vorherige Bedingung erfüllt hat per 301-Weiterleitung (R=301) an den die Adresse http://redirect301.de weitergeleitet. Der Statuscode 301 zeigt an, dass es sich um eine permanente Umleitung handelt und könnte hier auch mit [R=permanent] angegeben werden – das macht keinen Unterschied.

Alternativen zur htaccess-Datei

Natürlich funktioniert dieser Code auch innerhalb des Directory-Bereichs der Konfiguration des virtuellen Hosts. Und auch als virtueller Hosts-Eintrag lässt sich eine 301-Umleitung ohne www problemlos einrichten:

<VirtualHost *:80>
   ServerAlias www.redirect301.de
   Redirect 301 / http://redirect301.de/
</VirtualHost>

Bitte daran denken, dass diese Änderungen einen Apache Reload benötigen. Bei Debian sollte die neue Konfiguration durch apache2ctl -t auf ihre syntaktische Korrektheit überprüft werden und anschließend mit apache2ctl graceful eingelesen und aktiviert werden. Andere Betriebssysteme verwenden hier sicherlich ähnliche Aufrufe.