Fachbeitrag
.htaccess – Von der Kunst den Besucher zu leiten

Wessen Website auf einem Apache Server zuhause ist, der kann mit nur einer Datei suchmaschinenfreundliche Umleitungen anlegen, Besuchern eine intelligente 404-Fehler-Webseite präsentieren und auch noch dem Trafficklau vorbeugen. Obendrein lassen sich Verzeichnisse mit einem Passwort sperren.

Wenn Webseiten umziehen oder gelöscht werden, entstehen Löcher. Nicht nur auf der eigenen Internet-Präsenz, sondern nicht selten auch in den Katalogen der Suchmaschinen. Hart erkämpfte Positionen gehen verloren und leiten den Suchenden bei Klick in die Irre – in der Regel auf eine unattraktive 404-Fehlerseite. Verärgert machen sicherlich die meisten der Besucher auf dem Absatz kehrt Marsch und springen zurück zu den vorherigen Suchergebnissen. Schade, vielleicht hätte der jeweilige Surfer genau auf ihren Seiten eine Antwort bekommen, wäre ein neuer Kunde geworden oder Stammbesucher. Zum Glück gibt es Abhilfe.

Ein wenig Server-Magie

Wer seine Webseiten auf einem Apache-Server liegen hat, eröffnet sich mit Hilfe einer einzigen Datei neue Horizonte. Die Datei heisst ».htaccess« und wird im Root-Verzeichnis (root = Hauptverzeichnis) oder einem Unterverzeichnis abgelegt. Die Datei beinhaltet Steuerbefehle, die das Verhalten des Servers bestimmen. Bevor der Server einem Surfer eine gewünschte Seite ausliefert, wird diese Datei, wenn vorhanden, konsultiert, und entscheidet über das weitere Vorgehen des Servers. Dadurch lassen sich »präventive« Maßnahmen und bestimmte Verhaltensregeln festlegen.

So lassen sich mittels ».htaccess« leicht Verzeichnisse sperren und/oder mit einem Passwort versehen. Weiterhin kann man den Server veranlassen, bei einem nicht vorhandenen HTML-Dokument ein anderes auszuliefern. Außerdem kann man dem Server mitteilen, wie er sich bei auftretenden Fehlern verhalten soll. Dadurch können Sie z.B. Besucher auf extra zugeschnittene Fehlerseiten lotsen, sollte das gewünschte Dokument nicht vorhanden sein. Verschieben Sie auf ihrem Server ein Dokument oder Verzeichnis, hinterlassen sie in der ».htaccess«-Datei einfach einen Redirect-Befehl und der Server liefert das verschobene Dokument trotz veralteter URL aus. Der Surfer bemerkt davon gar nichts, nur eine veränderte URL.

301 Redirect – Die unsichtbare Umleitung

Nehmen wir an, Sie haben eine Datei »info.html« vom Verzeichnis »./dokumente/info.html« in das Verzeichnis »./docs/info.html« verschoben. In unserem Beispiel steht »./« für das Root-Verzeichnis ihres Servers. Nach dem Verrücken wären nun sämtliche Links, die auf die alte URL verweisen, fehlerhaft. Das betrifft nicht nur alte Links auf ihren eigenen Webseiten, sondern außerdem Suchmaschineneinträge als auch gespeicherte Favoriten. Damit dies nicht geschieht, schreiben Sie einfach eine neue Befehlszeile in ihre ».htaccess«-Datei.

Zuerst einmal downloaden Sie dazu die ».htaccess«-Datei via FTP-Programm auf ihre Festplatte. Damit ihr FTP-Programm die versteckte Datei anzeigt, müssen Sie sicherstellen, dass sie ihr FTP-Programm dementsprechend konfigurieren. Bei WS_FTP können Sie standardmäßig das Programm anweisen, alle versteckten Dateien anzuzeigen, indem Sie im Profil unter »Startup« in der »Remote File Mask« die Kombination »-a« eingeben (siehe Bild).

Damit WS_FTP versteckte Dateien, wie die .htaccess-Datei, anzeigt, muss man das Programm erst konfigurieren.
WS_FTP: versteckte Dateien anzeigen

Nach der Übertragung öffnen Sie die Datei und scrollen ans Ende des Dokumentes. Beachten Sie, dass sie die schon bestehenden Zeilen nicht verändern, damit alte Voreinstellungen nicht verloren gehen. Um ganz sicher zu gehen, legen Sie am besten eine Kopie des Originals an, damit Sie im Notfall die manipulierte Datei einfach mit der Alten ersetzen können.

Tragen Sie jetzt in der letzten Zeile den Befehl-String ein:

redirect 301 /dokumente/info.html http://www.ihre_domain.de/docs/info.html

Anschließend laden Sie die ».htaccess«-Datei auf ihren Server und geben im Browser die alte URL des Dokumentes ein. Der Server sollte nun das verschobene Dokument samt neuer URL anzeigen.

Sehr wichtig ist bei diesem Vorgehen, dass Sie das »http://« bei der veralteten Adresse »/dokumente/info.html« weglassen. Außerdem müssen sie zwischen alle Elemente ein Leerzeichen einfügen.

Mit dem redirect-Befehl lassen sich auch ganze Webseiten umleiten:

redirect 301 / http://www.neue_domain.de/

Das »/« weist darauf hin, dass alles oberhalb der Root-Directory auf die neue Domain verweist.

Suchmaschinen und 301 redirects

Sollten Sie einmal die Verzeichnisstruktur Ihrer Website ändern, so ist die 301-redirect-Methode der sicherste Weg, die eigenen Page-Rankings nicht zu gefährden. Beim nächsten Spider-Vorgang der jeweiligen Suchmaschine bekommt der Daten-Krabbler trotz veralteter URL eine positive Antwort ihres Servers und sollte die alte URL in der Suchmaschinendatenbank anschließend durch die neue ersetzen. Verschieben Sie Dokumente auf eine ganz neue Domain, kann das allerdings ihr Ranking beeinflussen. Nicht jedoch, wenn Sie die Inhalte auf der gleichen Domain verschieben. Natürlich kann man für eine alte Webseite auch eine kleine HTML-Datei mit einem Refresh-Befehl in den Metatags hinterlassen. Hierbei entstehen jedoch zwei Probleme. Die Suchmaschine aktualisiert den alten Link nicht, und einige Suchmaschinen mißverstehen solche HTML-Umleitungen gar als Spamversuch.

Selbst Amazon.de beweist ein wenig Humor bei seiner 404-Fehlerseite. Oder soll der Hund beim Suchen helfen? Eine weiterhelfende Suche fehlt jedoch.
404-Fehlerseite von Amazon.de

Smarte und gut aussehende 404-Fehlerseiten

Ein 404-Fehler tritt irgendwann immer einmal auf. Selbst wenn alle Dokumente an ihrem richtigen Platz sind, kann ein Tippfehler in der Adresszeile den Server veranlassen, eine protestierende 404-Meldung an den Browser zu schicken. Menschlich wie Besucher nun einmal sind, werden Sie in erster Linie davon ausgehen, nichts falsch gemacht zu haben. Ein kleiner vorsichtiger Hinweis lässt sie da schon aufhorchen. Vielleicht sogar mit einer kleinen Prise Humor in Form eines Bildes. Der erste Ärger verpufft hier hoffentlich schon einmal in der Belustigung.

Gleichzeitig sollten sie ihrem Besucher helfen. Da oftmals Surfer über Suchmaschinen auf eine Website stoßen, wissen Sie nicht, wohin sie katapultiert wurden. Deshalb sollten sie gerade auf einer 404-Seite deutlich machen, auf welcher Art Website er/sie gelandet ist. So hilft ein Logo samt intelligentem Slogan bei der schnellen Orientierung, wie z.B. »ForReal – Ihr Immobilienexperte« oder »earregular – Technoplattenlabel für progressive Clubmusik«. Außerdem sollten sie dem Besucher Links zur Startseite und zum Inhaltsverzeichnis (auch Sitemap) anbieten. Am wichtigsten ist jedoch der direkte Zugriff auf die Suchfunktion. Diese sollte in der 404-Webseite auf jeden Fall integriert werden. Außerdem können ein paar Hinweise auf Tippfehler oder verschobene Webseiten ein wenig Erklärung bieten.

Mit Humor und ein wenig Pixel-Charme federt das Designer Magazin k10k.net die Irreleitung seiner Besucher ab.
404-Fehlerseite von Kaliber10000

Um den Wiedererkennungswert zu erhöhen, bietet es sich auch an, die Suchseite direkt im Design ihrer Webseite anzubieten. Das hat unter anderem den Vorteil, dass der Surfer evtl. neugierig in den Rubriken und Angeboten weitersucht. Achten sie aber darauf, dass die Besucher sofort erkennen, dass es sich um eine 404-Webseite handelt.

Damit der Server die neue 404-Webseite, z.B. »404.html«, ausgibt, müssen sie wiederum einen Eintrag in der ».htaccess«-Datei vornehmen:

ErrorDocument 404 /404.html

Diese Datei sucht der Server bei einem 404-Fehler im Hauptverzeichnis und sendet sie dann an den Browser.

V.I.P. Bereich – Nur für Mitglieder!

Manchmal möchte man ein Verzeichnis oder eine Datei schnell und einfach mit einem Benutzernamen plus Passwort schützen. Sie können den Passwortschutz außerdem wahlweise für einzelne Benutzer oder für ganze Benutzergruppen einrichten. Dafür reicht die ».htaccess«-Datei aber leider nicht. Zusätzlich wird eine Datei mit den Benutzern und Passwörtern gebraucht. Die ».htaccess«-Datei könnte dabei so aussehen:

# .htaccess-Datei fuer VIP Bereich
AuthType Basic
AuthName "V.I.P. BEREICH"
AuthUserFile usr/verwaltung/.htusers
AuthGroupFile usr/verwaltung/.htgroups
require user Hans Petra Tim
require group VIP-Mitglieder

Alle Besucher ihrer Website, die versuchen, auf das geschützte Verzeichnis mit der .htaccess-Datei zuzugreifen, bekommen von ihrem Browser einen Passwortabfrage angeboten.
Passwortabfrage im Browser

Die erste Zeile mit »#« ist ein Kommentar. Um einen Passwortschutz einzurichten, brauchen Sie die Schlüsselwörter »AuthType«, »AuthName«, »AuthUserFile«, und wenn Sie mit Benutzergruppen arbeiten, auch »AuthGroupFile«. Außerdem benötigen sie eine oder mehrere Angaben zu dem Schlüsselwort require.

»AuthType« bezeichnet die Art der Authentifizierung. Die übliche Angabe ist Basic. Mit »AuthUserFile« wird die Datei angegeben, in der die autorisierten Benutzer und ihre Passwörter stehen. Hier müssen sie den vollständigen absoluten Pfadnamen angeben, also den Pfad ab dem Wurzelverzeichnis des Server-Rechners. Das Gleiche gilt für die Gruppendatei, falls Sie mit Benutzergruppen arbeiten. Diese wird mit »AuthGroupFile« angegeben.

Bei require geben Sie als zweites Schlüsselwort entweder »user« oder »group« an, je nachdem, ob Sie einzelne Benutzer oder Benutzergruppen meinen. Dahinter können ein oder mehrere Namen von Benutzern oder Benutzergruppen folgen.

Benutzerdatei – .htusers

Im obigen Beispiel werden die drei Benutzer Hans, Petra und Tim sowie alle Benutzer der Gruppe »VIP-Mitglieder« angegeben. Damit der Passwortschutz funktioniert, müssen nun die angegebenen Dateien mit den Benutzern und den Gruppen angelegt werden.

# Benutzerdatei fuer Web-Projekt
Hans:INY8//m5KMwIc
Petra:6hW7db9QJ2Lu2
Tim:INw2mPEH.owe2

Den obigen Text speichern sie nun in der Datei ».htusers« ab. Jede Zeile außer der Kommentarzeile beinhaltet einen Benutzernamen, und gleich dahinter, durch einen Doppelpunkt getrennt, das Passwort. Bei Unix-Systemen werden die Passwörter ein weiteres Mal verschlüsselt (bei Windows-Systemen nicht). Sie werden mit Hilfe des crypt-Mechanismus encodiert. Um solche Passwörter zu erstellen, gibt es mehrere Services im Netz, z.B. auf den Webseiten des Webwork Magazins (snipurl.com/crypt_generator).

Gruppendatei – .htgroups

Gruppendateien bestehen aus Einträgen, bei denen zunächst ein Gruppenname notiert wird und dahinter, nach einem Doppelpunkt, die Namen von Benutzern, die zu dieser Gruppe gehören. Es müssen Benutzernamen sein, für die bereits in der Benutzerdatei ein Eintrag angelegt wurde.

# Gruppendatei fuer Web-Projekt
VIP-Mitglieder: Michael Franzi Klaus

Die Gruppendatei wird im Beispiel nur benötigt, weil in der .htaccess-Datei eine Benutzergruppe angegeben wurde. Während Sie die Benutzerdatei in jedem Fall brauchen, ist die Gruppendatei nur erforderlich, wenn Sie Gruppennamen benutzen.

Wer nur Einzeldateien sperren möchte, geht folgendermaßen vor:

# Dateien schützen
AuthType Basic
AuthName "VIP-Mitglieder"
AuthUserFile /usr/verwaltung/web/.htusers
AuthGroupFile /usr/verwaltung/web/.htgroups
<Files *.txt>
require user Michael Franzi Klaus
require group VIP-Mitglieder
</Files>

Mit diesen Befehlen schützen Sie sämtliche Dateien mit der Endung »*.txt«. So wäre eine Datei »nachricht.txt« geschützt.

Keine Chance für Traffic-Diebe

In der Regel muss jeder seinen Webhoster für den entstandenen Verkehr bezahlen, der durch die Auslieferung von HTML-Dateien, Bildern, Sounds etc. entsteht. Die meisten Pakete beinhalten jedoch eine Pauschale, die im Paketpreis inbegriffen ist. Dazu gehört auch eine bestimmte Menge an Traffic, z.B. 7 Gigabyte. Ist diese Grenze überschritten, schlagen viele Webhoster oftmals gierig zu und berechnen pro angefangenen mehr als nötig. Ärgerlich ist das vor allem dann, wenn fremde Webseiten-Besitzer für den Verkehr gesorgt haben, weil sie frech ihre Bilder in die eigenen Webseiten laden.

Doch dem kann vorgebeugt werden mit unserem liebgewonnenen Freund ».htaccess«. Mittels des folgenden Scripts sperren sie für fremde Webseiten den Zugriff auf die eigenen Inhalte und liefern anstelle dessen ein kleines Bild, z.B. mit einer kleinen Werbung in eigener Sache:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ihre_website\.de(/.*)?$ [NC]
RewriteRule \.(gif|jpg|GIF|JPG)$ http://www.ihre_website.de/bilder/werbung.gif [R,L]

Die ».htaccess«-Datei übertragen sie nun in das Verzeichnis, welches geschützt werden soll. Wird nun ein Bild auf einer fremden Seite verlinkt, liefert ihr Server die kleine Werbung. Sollten sie eine weitere Website besitzen, die weiterhin Zugriff auf die erste Präsenz hat, fügen sie lediglich folgende Zeile hinter der dritten Zeile hinzu:

RewriteCond %{HTTP_REFERER} !^http://(www\.)?weitere_website\.de(/.*)?$ [NC]

Möchten sie gar keine Bilder ausliefern, sondern soll lediglich ein rotes X erscheinen, dann versuchen sie es mit folgendem Listing:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trafficklau\.de(/.*)?$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

Links: