Auf den ersten Blick ist ein .htaccess-File nur eine kleine Textdatei im Root-Verzeichnis einer Website – mit der sich allerdings eine ganze Menge nützliche Dinge anstellen lassen. Neben Weiterleitungen (Redirects) macht es .htaccess zudem möglich, bestimmte IP-Adressen zu sperren und einen Passwortschutz einzurichten. Wie all das geht und was eine .htaccess-Datei eigentlich ist, erfahren Sie hier!
Was ist die .htaccess-Datei?
Die Grundlage jeder Website ist das sogenannte Hauptverzeichnis (Root-Verzeichnis). Es ist gewissermaßen die Schaltzentrale: Was hier verändert wird, wirkt sich auf die gesamte Website aus. Dieses Verzeichnis brauchen Sie also beispielsweise dann, wenn Sie Änderungen an Ihrer WordPress-Website vornehmen wollen.
Und hier kommt schon die Textdatei .htaccess (Hypertext Access) ins Spiel: Sie ermöglicht diverse Änderungen im Hauptverzeichnis (Root-Verzeichnis) einer Website. Diese Änderungen werden dann automatisch an alle Unterverzeichnisse weitergegeben und sind sofort wirksam.
Alle betroffenen Verzeichnisse werden bei jedem Website-Zugriff vom Webserver gescannt. Der Server befolgt dabei die Informationen, die er in der .htaccess-Datei findet. Wenn Sie etwa möchten, dass eine bestimmte URL dauerhaft auf eine andere Webseite weitergeleitet wird, können Sie das mit einem 301-Redirect in der .htaccess-Datei festlegen und der Webserver führt diesen Befehl durch.
Hier noch einmal das Wichtigste im Schnelldurchlauf:
(Übrigens: Eine Einführung zum Thema Webserver finden Sie in unserem Server-Ratgeber!)
Was bringt .htaccess?
Ein .htaccess-File ist schnell erstellt – aber was macht man dann konkret damit? Das kommt ganz darauf an, denn Anwendungsgebiete gibt es viele. Sie können mit .htaccess unter anderem…
- …diverse Weiterleitungen einrichten, etwa auf eine Error-404-Seite oder auf eine sichere Verbindung (https statt http).
- …einen Passwortschutz für bestimmte Bereiche der Website einrichten.
- …Verzeichnisse oder Ordner vor unautorisiertem Zugriff schützen.
- …Hotlinking von Bildern verhindern.
- …die Server-Zeitzone ändern.
Sehr oft wird die Textdatei für Redirects verwendet. Nehmen wir zum Beispiel an, Sie haben sich Ihre Wunschdomain gesichert, und dazu noch alle alternativen Schreibweisen dieser Domain. Trotzdem sollen Personen, die versehentlich eine solche falsche Schreibweise der Domain eintippen, auf der richtigen Seite landen – Bühne frei für den Redirect via .htaccess!
Wie Sie diese Weiterleitungen einrichten, zeigen wir Ihnen im zweiten Teil dieses Ratgebers. Um das überhaupt umsetzen zu können, brauchen Sie natürlich zunächst eine .htaccess-Datei – und zumindest einen groben Überblick, was die Befehle und Anweisungen betrifft, die in der Datei dann zu finden sind. Sollten Sie sich damit schon auskennen, können Sie gleich zum zweiten Teil springen!
.htaccess-File erstellen und .htaccess-Editor: ein Überblick
Praktischerweise brauchen Sie keine speziellen Programme, um die .htaccess-Datei zu konfigurieren – in der Regel reicht dafür schon ein ganz normaler Text-Editor. Legen Sie einfach eine neue Text-Datei an und speichern Sie diese als .htaccess.txt. So geht’s:
- Öffnen Sie den Standard-Editor Ihres Betriebssystems auf, z. B. den Text-Editor bei Windows.
- Geben Sie keinen Text ein, sondern klicken Sie einfach links oben bei »Datei« auf »Speichern«.
- Wählen Sie den Dateityp »alle Dateien« und als Dateinamen .htaccess.
- Klicken Sie bei Codierung auf »ANSI« und speichern Sie die Eingaben.
Diese .htaccess-Datei können Sie nun theoretisch in das gewünschte Website-Verzeichnis hochladen. Das ist allerdings nur möglich, wenn Sie einen FTP-Zugang haben. Alternativ bieten manche Anbieter (darunter auch Hoststar) einen SSH-Zugang, mit dem Sie auf Ihr Webhosting verbinden können. Bei dieser Variante können Sie die Datei direkt auf dem Server bearbeiten.
Elemente in der .htaccess-Datei
Wie Sie in den Modulen bzw. Befehlen im nächsten Abschnitt sehen werden, gibt es einige Elemente, die in der .htaccess-Datei immer wieder vorkommen. Zeit für einen kleinen Überblick:
Symbol |
Bedeutung |
---|---|
Symbol [R] |
Bedeutung Force Redirect – der Code für die Um- bzw. Weiterleitung, also entweder R=301 oder R=302 |
Symbol [L] |
Bedeutung Last Rule – letzte Rewrite-Regel (s. u.), die ausgeführt werden soll |
Symbol ^ und $ |
Bedeutung kennzeichnen Anfang bzw. Ende der Seite, die umgeleitet werden soll, etwa ^beispielseite.at$ |
Symbol \ |
Bedeutung Begrenzungszeichen, das mit dem Punkt in einem normalen Satz vergleichbar ist. |
Erste Schritte in .htaccess
Wenn Sie mit .htaccess Konfigurationen vornehmen wollen, sollten Sie folgende Befehle bzw. Apache-Module kennen:
Befehl/Modul |
Was ist das? |
---|---|
Befehl/Modul RewriteEngine On |
Was ist das? Befehl, der das mod_rewrite-Modul aktiviert und bei der Konfiguration stets am Anfang steht. |
Befehl/Modul mod_rewrite |
Was ist das? Apache-Modul, das die Modifizierung von URLs (z. B. Redirects) ermöglicht. |
Befehl/Modul RewriteRule |
Was ist das? Eine konkrete Änderung, die etwa besagt, ob es um eine 301-, 302- oder https-Weiterleitung geht. |
Befehl/Modul RewriteBase |
Was ist das? Gibt an, welches Verzeichnis umgeschrieben werden soll (normalerweise ist es das Hauptverzeichnis). |
Befehl/Modul RewriteCond |
Was ist das? Gibt die Bedingung an, unter der eine Umleitung stattfinden soll. |
Befehl/Modul 301 Redirect |
Was ist das? HTML-Befehl zur dauerhaften Weiterleitung, sodass die Navigation nun immer zu dieser neuen Webseite führt und auch Suchmaschinen nur noch diese neue Seite erkennen. |
Befehl/Modul 302 Redirect |
Was ist das? vorübergehende Weiterleitung |
Befehl/Modul |
Was ist das? Fehlermeldung, die oft auftritt, wenn in der .htaccess-Datei ein versehentlicher Syntaxfehler vorliegt. |
Der letzte Punkt zeigt bereits: Bei .htaccess-Änderungen ist Präzision gefragt. Denn Webserver reagieren sofort auf falsche Schreibweisen, selbst wenn sie noch so minimal erscheinen. Tritt durch Syntaxfehler ein Error auf, wird das übrigens nicht protokolliert – ein Grund mehr, ganz genau zu prüfen, ob die letzte Änderung ordnungsgemäß verlaufen ist.
Und wenn man nun eine bestimmte Änderung in der .htaccess-Datei vornehmen möchte, wie sieht das dann konkret aus? Ganz einfach, z. B. würden bei einem Redirect-Befehl in der Text-Editor-Ansicht diese Zeilen stehen (wobei unter RewriteRule natürlich noch ein konkreter Befehl zu finden wäre):
RewriteEngine On RewriteBase \ RewriteRule
Bereit? Dann kann es schon losgehen mit den .htaccess-Konfigurationen für Weiterleitungen, Passwortschutz etc.!
Trick 1: Die .htaccess-Datei und HTML-Weiterleitungen (Redirect)
Ein Redirect kann vieles beinhalten, von einzelnen URL-Weiterleitungen bis hin zur Umleitung einer ganzen Domain. Je nachdem, welche Weiterleitung gefragt ist, gestaltet sich der .htaccess-Befehl etwas anders.
301 Redirect: URLs mit .htaccess weiterleiten
Eine 301-Weiterleitung bedeutet, dass die URL dauerhaft umgeleitet wird. Diese Vorgehensweise bietet sich u. a. dann an, wenn sich die URL-Struktur der Website ändert. Warum? Nun ja: Nur durch die permanente Weiterleitung ist es möglich, die Autorität beizubehalten, die man über die alte URL aufgebaut hat.
Durch den 301-Redirect-Befehl weiß der Suchmaschinen-Crawler, dass die bereits aufgebauten Backlinks bzw. die so gewonnene Autorität auf die neue URL übertragen werden sollen. Mit anderen Worten: Sie startet nicht bei null, was das Suchmaschinenranking betrifft.
Und so geht’s in der .htaccess-Datei:
RewriteEngine On Redirect 301 /bisheriger-pfad/ https://www.beispiel.at/gewuenschter-neuer-pfad/
Wenn die Weiterleitung nur vorübergehend sein soll, geben Sie statt 301 einfach 302 ein.
Domain-Weiterleitung mit .htaccess
Statt separaten URLs ist es ebenso möglich, ganze Domains weiterzuleiten. Das ist beispielsweise dann sinnvoll, wenn Sie sich alternative Schreibweisen Ihrer Domain gesichert haben und alle Varianten zur »richtigen« Homepage führen sollen.
Sie brauchen folgenden Code:
RewriteEngine On RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://gewuenschte-neue-domain.at/$1 [L,R=301]
Redirect von www. zur Version ohne www.
Moment – ist es nicht völlig egal, ob man eine Domain mit oder ohne www. schreibt? Ja und nein, denn Sie sehen zwar bei beiden Schreibweisen die gleiche Website auf dem Bildschirm, doch theoretisch handelt es sich nicht um ein und dieselbe Seite.
Für Nutzer/innen ist das natürlich kein nennenswertes Problem – wohl aber für Webseitenbetreibende, sobald Suchmaschinen-Crawler ins Spiel kommen. Diese werten es nämlich unter Umständen als Duplicate Content, wenn auf www.- und non-www.-Seite jeweils der identische Inhalt zu finden ist. Der Redirect auf eine der beiden Schreibweisen ist also eine wichtige Vorsichtsmaßnahme und in erster Linie aus SEO-Sicht interessant.
Mit folgendem Befehl richten Sie in der .htaccess-Datei eine Weiterleitung auf die Website ohne www.-Subdomain ein:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.beispielseite\.at§ [NC] RewriteRule ^(.*)$ http://beispielseite.at/$1 [L,R=301]
Redirect von http zu https mit .htaccess
HTTPS bedeutet, dass die Website mit einem SSL-Zertifikat verschlüsselt ist. Es handelt sich dadurch im Vergleich zu http-Webseiten um eine sichere Verbindung. Diese Verschlüsselung ist zwar keine Pflicht, jedoch ein äußerst wichtiges Vertrauenssignal. Daher lohnt sich eine dauerhafte Weiterleitung von http zu https definitiv.
In der .htaccess-Datei geben Sie zu diesem Zweck Folgendes ein:
RewriteEngine On RewriteCond %{SERVER_PORT} !=443$ RewriteRule ^(.*) https://beispieldomain.at/$1 [R=301, L]
Trick 2: Passwortschutz bzw. Verzeichnisschutz mit .htaccess
Nicht immer sind alle Website-Inhalte für die breite Öffentlichkeit gedacht. Sei es die Abteilung in der Firma, die als einzige auf gewisse Ordner oder Verzeichnisse zugreifen können soll oder ein geschützter Bereich für bestimmte Seitenbesucher/innen: In solchen Fällen erweist sich .htaccess als ziemlich praktisch. Die Datei wird in dem Verzeichnis gespeichert, das zu schützen ist.
Durch den Zugriffsschutz werden zunächst Nutzername und Passwort abgefragt. Nur mit den richtigen Zugangsdaten ist dann der Zugriff auf das jeweilige (Unter-)Verzeichnis gestattet.
Achtung: Um via .htaccess einen Passwortschutz einrichten zu können, brauchen Sie neben dem .htaccess-File außerdem eine .htpasswd-Datei. Letztere enthält die Passwörter, welche verschlüsselt in Unix-Systeme eingetragen werden müssen.
Zugriffsschutz: Wie Sie Ordner und Verzeichnisse mit .htaccess schützen
Bevor wir zu der eigentlichen .htaccess-Regel kommen, wieder eine kurze Begriffsklärung. Für den Zugriffsschutz brauchen Sie:
- AuthType = die Art der Authentifizierung
- AuthName = Text, der angezeigt werden soll
- AuthUserFile = vollständiger Pfad der Datei, die geschützt werden soll
In der .htaccess-Datei sieht das dann so aus:
AuthType Basic AuthName "Bitte geben Sie Benutzername und Passwort an" AuthUserFile /Pfad der zu schützenden Datei/.htpasswd Require valid-user
Nehmen wir der Einfachheit halber an, Sie wollen das Verzeichnis /htbeispiel/ mit einem Passwort schützen. Der Befehl würde dann wie folgt heißen:
AuthType Basic AuthName "Bitte geben Sie Benutzername und Passwort an" AuthUserFile /htbeispiel/.htpasswd Require valid-user
Fehlt nur noch die .htpasswd-Datei: Sie enthält den Nutzernamen und das verschlüsselte Passwort. Um ein solches Passwort zu bekommen, werden oft Online-Generatoren verwendet.
.hta-Passwortschutz: Passwort-Generatoren für .htpasswd
Noch einmal zur Wiederholung: Die .htpasswd-Datei sollte über dem Root-Verzeichnis liegen und die .htaccess-Datei in dem Verzeichnis, das zu schützen ist. Beide Dateien sind zwingend nötig, um den Zugriffsschutz einzurichten.
Ebenso notwendig ist das verschlüsselte Password. Dafür können Sie ein Online-Programm benutzen, zum Beispiel Htaccesstools oder unter entwicklertools.de. In den Passwort-Generator geben Sie den gewünschten Nutzernamen und ein selbst gewähltes Passwort ein. Das Tool erzeugt dann ein verschlüsseltes Passwort.
Als Beispiel gehen wir davon aus, dass eine Person mit dem Nutzernamen Maria_N Zugriff auf das Verzeichnis haben soll. Nachdem der Generator das von uns gewählte Passwort verschlüsselt hat, geben wir in die .htpasswd-Datei folgende Zeile ein:
Maria_N:$apr1$.xBjCCOD$rHcsIizCbffxJFaZek0a9/
Achtung: Zwischen Nutzername und Passwort steht nur ein Doppelpunkt, keine Leerzeichen!
Trick 3: Mit .htaccess IP-Adressen sperren
Sie wollen nicht nur geschützte Bereiche einrichten, sondern aktiv bestimmte IP-Adressen bzw. IP-Ranges blockieren oder alternativ nur einige wenige IP-Adressen zulassen? Dann müssen Sie die betreffenden IP-Adressen in die .htaccess-Datei eintragen, und zwar eine Adresse pro Zeile.
Die wichtigen Befehle sind in diesem Fall »allow« und »deny«. Nehmen wir an, dass Sie folgenden IP-Adressen den Zugriff erlauben wollen:
- 171.33.163.2
- 239.35.67.199
- 134.74.34.243
Blockieren wollen Sie diese IP-Adressen:
- 193.16.235.205
- 111.64.204.199
In die .htaccess-Datei geben Sie nun ein:
order allow,deny allow from 171.33.163.2 allow from 239.35.67.199 allow from 134.74.34.243 deny from 193.16.235.205 deny from 111.64.204.199
Sie können theoretisch auch nur einer einzelnen IP-Adresse den Zugriff gewähren. Geben Sie dazu »deny from all« und »allow from« mit der betreffenden Adresse ein.
Trick 4: Hotlinking von Bildern mit .htaccess verhindern
Beim sogenannten Hotlinking wird das Bildmaterial, das man selbst veröffentlicht hat, unerlaubt auf anderen Websites verwendet. Dabei nutzt die betreffende Website den Speicherplatz Ihrer Website, sodass für Sie zusätzliche Traffic-Kosten entstehen, ohne dass Sie von diesem Traffic profitieren.
Um diesen »Diebstahl« zu verhindern, geben Sie in der .htaccess-Datei folgende Zeilen ein:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://www.ihredomain.at/ [NC] RewriteRule \.(png|jpg|gif)$ - [F]
Übersetzt heißt dieser Befehl, dass der Server alle Links auf PNG-, JPG- und GIF-Dateien blockieren soll, die nicht von http:www.ihredomain.at kommen. So werden die Bilddateien nur noch auf der eigenen Website korrekt dargestellt.
Sie sehen schon: Mit wenigen Zeilen kann die .htaccess-Datei einiges auf der Website ausrichten. Das gilt im positiven wie im negativen Sinn, denn Syntaxfehler können wie gesagt ungewollte Folgen haben. Richtig umgesetzt, sind die .htaccess-Befehle aber eine praktische Möglichkeit, die Website suchmaschinenoptimiert und sicherer zu gestalten. Genau hinschauen, lautet also die Devise, wenn Sie mit .htaccess Weiterleitungen, Passwortschutz etc. einrichten wollen – viel Erfolg bei der Umsetzung!
Neuen Kommentar schreiben