Eine .htaccess-Datei ist im Grunde genommen nichts anderes als eine reine Textdatei. Mit ihr kannst du die Konfiguration des Apache Webservers beeinflussen, ohne direkten Zugriff auf die Hauptkonfigurationsdatei (httpd.conf) des Webservers zu haben.
Die Konfigurationen in der .htaccess-Datei, beziehen sich dabei immer auf den gesamten Inhalt des aktuellen Verzeichnisses. Sprich alle Dateien und Unterordner die sich darin befinden.
Häufig wird die .htaccess-Datei eingesetzt, wenn ein Verzeichnis mit einem Zugriffsschutz versehen werden soll.
Wie du diese Konfigurationsmöglichkeit nutzen kannst und wozu sie noch eingesetzt wird, erläutere ich dir in diesem Artikel.
Wie du diese Konfigurationsmöglichkeit nutzen kannst
Um die Konfiguration deines Webservers mit Hilfe der .htaccess-Datei anzupassen, musst du einfach nur eine Datei mit dem Namen .htaccess erstellen und in das entsprechende Verzeichnis auf dem Server hochladen. Sofort nach dem Hochladen werden die definierten Regeln vom Apache berücksichtigt.
Wenn du normalerweise Änderungen an der Hauptkonfigurationsdatei des Apache’s vornimmst, musst du diesen neustarten. Ansonsten würden die Änderungen nicht greifen. Bei der .htaccess-Datei ist dies anders. Wenn die Nutzung der Dateien erlaubt ist, sucht der Apache bei jedem Seitenaufruf einer Website im kompletten Pfad nach einer .htaccess-Datei und wendet die dort definierten Regeln an.
Die Nutzung wird vom Serveradministrator in der httpd.conf des Apache’s erlaubt, eingeschränkt erlaubt oder ganz verboten. Hierzu kann er auf die AllowOverride-Direktive zurückgreifen und genau festlegen, welche Einstellungen du mit deiner .htaccess-Datei überschreiben kannst.
Wird in der Hauptkonfiguration der Wert der AllowOverride-Direktive z.B. auf None gesetzt, werden alle Anweisungen in der .htaccess-Datei ignoriert und die Verwendung ist quasi nicht erlaubt. Steht der Wert hingegen auf All, kannst du (so gut wie) alle Möglichkeiten ausnutzen.
Wie sieht das ganze jetzt genau aus?
Generell wird in einer .htaccess-Datei die gleiche Syntax wie in der Hauptkonfigruationsdatei des Apache’s genutzt.
Sagen wir doch einfach mal, dass sich eine URL zu einer Seite deiner Internetpräsenz geändert hat.
Alter URL: http://www.deinedomain.de/alter-ordner/inhaltsverzeichnis.html
Neue URL: http://www.deinedomain.de/neuer-odner/inhalt.html
Alle Besucher die den alten Pfad kennen oder sich diesen als Favorit im Browser abgespeichert haben, würden bei einem erneuten Aufruf, eine Fehlermeldung erhalten. Damit dies nicht passiert, möchten wir gerne über eine .htaccess-Datei eine Weiterleitung einrichten.
Hierzu erstellst du einfach eine Datei mit dem Namen .htaccess (der Punkt ist zwingend erforderlich) oder erweiterst deine bereits bestehende Datei um die folgende Zeile:
Redirect 301 /alter-ordner/inhaltsverzeichnis.html http://www.deinedomain.de/neuer-ordner/inhalt.html
Die .htaccess-Datei würde in unserem Beispiel im Hauptverzeichnis deiner Internetpräsenz liegen und leitet nun alle Anfragen an die neue URL weiter.
Das war es schon. Mehr brauchst du nicht zu tun. Einfach oder?
Na gut, je nachdem was du vor hast, können es schon ein paar mehr Zeilen sein. Grundsätzlich ist es aber so einfach und ich hoffe du hast das Grundprinzip verstanden. Falls nicht, lass es mich doch in den Kommentaren wissen.
Was kannst du mit der .htaccess-Datei alles konfigurieren?
Die Zahl der erlaubten Anweisungen innerhalb der .htacces-Datei, sind mit jeder Version des Apache größer geworden. Damit hat sich natürlich auch der Umfang dessen erweitert, was über diese Datei konfiguriert werden kann.
Hier eine Übersicht der Konfigurationsmöglichkeiten:
- Zugriffsschutz auf Dateien oder ganze Verzeichnisse
- eigene HTTP-Fehlermeldungen bestimmen
- Weiterleitungen einrichten
- Zugriff auf den Server für bestimmte IP-Adressen, IP-Bereiche oder Hostnamen sperren
- Verzeichnis-Optionen einstellen
- Die Nutzung des Expires Header einstellen
- Komprimierung für die Elemente einer Website konfigurieren
- URL-Pfade umschreiben
- usw.
Diese Liste ist längst nicht vollständig und du kannst noch eine Menge mehr mit der .htaccess-Datei anstellen. Für einen ersten Eindruck soll dies aber reichen.
Wenn du dich mit dem Thema und den Möglichkeiten tiefer beschäftigen möchtest, dann habe ich hier drei überragende Quellen für dich:
- Offizielles Tutorial der Apache Software Foundation (englisch)
- Umfangreiches Tutorial in englischer Sprache
- .htaccess-Tutorial speziell für SEO’s (deutsch)
Bevor du mit deinem Studium der Quellen beginnst, musst du auf jeden Fall noch diesen Artikel zu Ende lesen! Jetzt folgen nämlich noch zwei wichtige Gründe, warum du eventuell auf den Einsatz einer .htaccess-Datei verzichten solltest.
Wann solltest du eine .htaccess-Datei einsetzen?
Grundsätzlich solltest du die .htaccess-Datei nur einsetzen, wenn du keinen Zugriff auf die Hauptkonfigurationsdatei (httpd.conf) des Apache Webservers besitzt. Wenn du also deine Website über einen Shared Hosting-Service betreibst, ist die Verwendung einer .htaccess-Datei die beste Lösung um Einstellungen an der Konfiguration zu ändern (natürlich nur, wenn dies erlaubt ist).
Solltest du dir hingegen einen eigenen Server gemietet haben und Zugriff auf die httpd.conf besitzen, dann solltest du deine Konfigurationen auch dort vornehmen!
Das hat zwei Gründe:
- Die Website Performance leidet – Wenn die Verwendung erlaubt ist, dann schaut der Apache in jedes Verzeichnis nach einer vorhandenen .htaccess-Datei. Außerdem muss die Datei bei jedem Seitenaufruf geladen werden. Dies kostet wertvolle Ressourcen auf dem Webserver und natürlich Zeit. Zeit, die der Besucher deiner Website länger auf die Auslieferung der Inhalte warten muss und was für eine schlechte Website Performance sorgt.
- Mögliche Sicherheitslücken – Der zweite Grund ist eher für Serveradministratoren entscheidend. Wenn die Verwendung nämlich erlaubt ist, hat man keine 100% Kontrolle mehr über die Konfiguration des Webservers und es können eventuell Sicherheitslücken entstehen.
Fazit
Mit der Hilfe einer .htaccess-Datei kannst du die Konfiguration des Webservers beeinflussen. Alle definierten Regeln, wirken sich auf das Verzeichnis aus, in dem du die Datei gespeichert hast und sie werden sofort nach dem Speichern oder Hochladen der Datei vom Server berücksichtigt. Ein Neustart ist nicht notwendig.
Wenn du eine .htaccess-Datei einsetzt, hast du viele verschiedene Konfigurationsmöglichkeiten. Zum Beispiel kannst du eine Weiterleitung auf ein neues Ziel oder einen Zugriffsschutz auf eine Datei oder Verzeichnis einrichten.
Achtung: Der Einsatz ist aber nur zu empfehlen, wenn du keinen direkten Zugriff auf die Hauptkonfigurationsdatei (httpd.conf) des Apache’s besitzt.
Alles in allem ist die .htaccess-Datei ein mächtiges Tool und du solltest die Einstellungen gründlich testen, bevor du sie auf einer Live-Umgebung einsetzt. Fehlerhaft konfigurierte .htaccess-Datei können nämlich auch großen Schaden anrichten.
Hast du schon Erfahrungen mit diesen Dateien sammeln können? Wozu setzt du sie ein?
Unser Tipp: Wenn du eine Eigene Homepage erstellen möchtest, dann kann ich dir den Homepage Baukasten “Wix” absolut empfehlen! Auch wenn du einen Blog aufbauen oder einen Online-Shop erstellen willst, ist Wix die beste Wahl. Hier findest du eine Auflistung der besten Homepage Baukästen im Vergleich. Sogar kostenlos kann man Wix nutzen (wenn auch mit eingeschränkten Funktionen). Zum Testen reicht das aber allemal aus:)
christian Siegmann sagt
Danke für den Beitrag. Ich verwende die .hraccess für Umleitunden nach einem Serverumzug und Neuaufbau in unserer Firma.
Leider funktioniert bei einigen Urls die Umleitung übers Controlpanel des Servers nicht, weil dort keine Variabeln zulässig sind.
Auch funktionieren Umleitungen von Seiten aus der alten Seitenstruktur nicht, wenn dieese folgendermassen aufgebaut ist: domain.ch/typo3/index.php?id=32
Bei der alten Website wurde damals unsinnigerweise das Hauptverzeichnis mit typo3 benannt. Das war ein grosser Fehler meines Vorgängers, denn das Verzeichnis ist für das Backendlogin reserviert.
Typo3 eigene tools wie Realurl scheineneine Umleitung in dieser Art nicht umsetzen zu kõnnen.
Die gute alte .htacces greift als einzige Variante.
MfG
Enrico Lauterschlag sagt
Hallo Christian,
was verwendet ihr denn für einen Server/Webserver? Wenn ihr den Apachen einsetzt und Zugriff auf die Konfigurationsdateien besitzt, dann würde ich dir eher empfehlen, die Umleitungen direkt in die httpd.conf einzutragen.
Wie ich im Artikel bereits geschrieben habe, leidet nämlich die Website Performance etwas unter der Verwendung von htaccess-Dateien.
Viele Grüße
Enrico
Karol sagt
Hallo,
bin kein Programmierer und versuchte mit Getsimple auf kostenlosen Server http://www.square7.ch ein bischen üben. Es gelingt mir mit Filezilla den Ordner von Getsimple hochladen. Habe per email auch die Zugangsdaten für meine Seite bekommen. Aber….ich bekomme nach Versuch sich anzumelden immer diese Meldung:
Internal Server Error
The server encountered an internal error due to .htaccess misconfiguration.
Please check your .htaccess file within this or upper directories for syntax errors.
Diese Anfrage konnte auf Grund eines .htaccess Konfigurationsfehlers nicht bearbeitet werden.
Die Überprüfung auf Syntaxfehler in der .htaccess-Datei in diesem oder einem übergeordneten Ordner ist erforderlich.
Darf ich Sie höfflich bitten: was soll ich tun (bin leider kein Programmierer 🙁
Beste Gr.
Karol
Enrico Lauterschlag sagt
Hallo Karol,
dass ist aber ein sehr spezielles Problem, bei dem ich dir so nicht wirklich helfen kann. Wie die Fehlermeldung bereits sagt, handelt es sich wohl um einen Konfigurationsfehler innerhalb der .htaccess-Datei. Aber um dir genau sagen zu können um welchen es sich genau handelt oder was du jetzt machen solltest, bräuchste ich mehr Informationen.
Ich würde dir vorschlagen, dass du deine Frage am besten im Forum von Getsimple stellst (http://get-simple.info/forums/index.php). Dort können dir die Mitglieder sicher besser weiterhelfen.
Falls das auch nichts bringt, würde ich an deiner Stelle mal den Webhosting-Anbieter Squeare7 anschreiben. Vielleicht können dir die ja auch weiterhelfen.
Viele Grüße
Enrico
Khaled Qaddoumi sagt
Hallo Enrico,
Vielen Dank für diesen Beitrag. Sehr simple und sehr verständlich erklärt.
MFG
K. Qaddoumi
Dennis Schröder sagt
Hallo Lorenz,
sehr gut geschriebener Beitrag. Dank dir, werde ich wahrscheinlich meine htaccess in den Ruhstand schicken und meine Konfigurationen in die vhost meines Apache packen.
Viele Grüße aus Essen.