7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Web Development

Der ultimative Leitfaden für .htaccess-Dateien

Scroll to top
Read Time: 18 mins

German (Deutsch) translation by Ines Willenbrock (you can also view the original English article)

Apaches .htaccess-Konfigurationsdateien haben unzählige Entwickler verblüfft. Dieses Tutorial zielt darauf ab, diese Verwirrung zu durchbrechen, indem es sich auf Beispiele und gründliche Beschreibungen konzentriert. Zu den Vorteilen des Erlernens der .htaccess-Konfiguration gehört das automatische Gzippen Ihrer Inhalte, das Bereitstellen freundlicherer URLs, das Verhindern von Hotlinking, die Verbesserung des Cachings und vieles mehr.

Suchen Sie nach einer schnellen Lösung?

Dieser Artikel wird Sie über die manuelle Konfiguration Ihrer .htaccess-Dateien unterrichten, aber wenn Sie eine einfache, schnelle Lösung wünschen, versuchen Sie, .htaccess Builder von Envato Market herunterzuladen. Es ermöglicht Ihnen, schnell und mühelos eine htaccess-Datei zu erstellen, ohne sich etwas über die Apache-Serversprache merken zu müssen, die zum Erstellen der htaccess-Datei verwendet wird!

htaccess Builder on Envato Markethtaccess Builder on Envato Markethtaccess Builder on Envato Market
.htaccess Builder auf dem Envato Market

Einleitung:

Ich habe eine Reihe von .htaccess-Artikeln online gelesen. Ich gebe schamlos zu Ich kam nicht über die Titelseite der Google-Ergebnisse hinaus. Ich war schockiert, als Ich las die Artikel und fand heraus, dass keiner von ihnen erklärte, was Apache tatsächlich tat. Sie waren lediglich eine Sammlung beliebter oder nützlicher Tricks oder Ausschnitte von wiederverwendbarem Code. Das ist alles gut und schön, aber das klassische Argument ist:

"Gib einem Mann einen Fisch und er wird einen Tag essen. Bringen Sie einem Mann bei, zu fischen, und er wird ein Leben lang essen." - Konfuzius

In diesem Artikel werde ich versuchen, Ihnen nicht nur Beispiele für nützliche .htaccess-Direktiven, sondern erkläre was genau passiert. Auf diese Weise verstehen Sie die Grundprinzipien und können dann die Beispiele erweitern oder neue Befehle für Ihren eigenen Gebrauch auf jede kreative oder nützliche Weise erstellen, die Ihnen einfällt.

Mein Fokus wird auf Apache 2 liegen, wobei vieles davon auch auf Apache 1.3 zutrifft und ich werde versuchen, auf alle Unterschiede hinzuweisen, die ich kenne.

Schlußendlich wird dieses Tutorial am sinnvollsten sein, wenn Sie es von oben nach unten lesen. Ich versuche, meine Beispiele zu verknüpfen und auf ihnen aufzubauen, so dass Sie sie selbst ausprobieren und mitverfolgen können.

Was ist .htaccess?:

Um Apache zu zitieren:

.htaccess-Dateien (oder "verteilte Konfigurationsdateien") bieten eine Möglichkeit, Konfigurationsänderungen pro Verzeichnis zu beschreiben. Eine Datei, die eine oder mehrere Konfigurationsdirektiven enthält, wird in einem bestimmten Dokumentverzeichnis abgelegt und für dieses Verzeichnis und alle Unterverzeichnisse gelten die Direktiven.

Direktiven

"Direktiven" ist die Terminologie, die Apache für die Befehle in Apaches Konfigurationsdateien benutzt. Sie sind in der Regel relativ kurze Befehle, in der Regel Schlüsselwertpaare, die das Verhalten von Apache ändern. Eine .htaccess-Datei ermöglicht Entwickler, eine Reihe dieser Direktiven auszuführen, ohne dass sie Zugriff auf Apaches Kern-Server-Konfigurationsdatei, oft httpd.conf genannt, haben. Diese Datei, httpd.conf, wird in der Regel als "globale Konfigurationsdatei" bezeichnet und ich werde mit diesem Namen oder seinem kurzen Dateinamenäquivalent auf sie verweisen.

Diese Funktion ist ideal für viele Hosting-Unternehmen, die ein shared Hosting bereitstellen. Das Hosting-Unternehmen wird seinen Kunden keinen Zugriff auf die globale Konfigurationsdatei, die letztlich alle Kunden betrifft, die auf diesen Server gehostet sind geben. Stattdessen geben sie jedem ihrer Kunden, indem sie .htaccess aktivieren, die Befugnis, ihre eigenen Apache-Direktiven in ihren eigenen Verzeichnisse und Unterverzeichnisse auszuführen. Natürlich ist es auch nützlich für die Entwickler, wie Sie sehen werden.

Es ist erwähnenswert, dass alles, was mit einer .htaccess-Datei getan werden kann, in der Datei httpd.conf durchgeführt werden kann. Jedoch, NICHT alles, was in httpd.conf durchgeführt werden kann, kann in einer .htaccess-Datei durchgeführt werden. In der Tat .htaccess Dateien müssen in der Datei httpd.conf aktiviert werden, um überhaupt ausgeführt zu werden. Sobald aktiviert, kann ihre Macht auf bestimmte "Kontexte" beschränkt werden, so dass sie einige Einstellungen zu überschreiben vermögen, andere jedoch nicht. Dies gibt den Systemadministratoren mehr Kontrolle darüber, was sie anderen Entwicklern in ihren .htaccess-Dateien erlauben.

Aktivieren von .htaccess:

.htaccess-Dateien sind normalerweise standardmäßig aktiviert. Dies wird tatsächlich kontrolliert durch die AllowOverride-Direktive in der Datei httpd.conf. Diese Direktive kann nur innerhalb eines Abschnitts platziert <Directory>werden. Lassen Sie sich nicht verwirren Die typische Datei httpd.conf definiert einen DocumentRoot und die der Mehrheit der Datei werden Direktiven in einem <Directory> Abschnitt enthalten, die mit diesem Verzeichnis zusammenhängen. Dazu gehört auch die AllowOverride-Direktive.

Der Standardwert ist eigentlich "All" und somit werden .htaccess-Dateien standardmäßig aktiviert. Ein alternativer Wert wäre "None", was bedeuten würde, dass sie vollständig deaktiviert sind. Es gibt zahlreiche andere Werte, die die Konfiguration auf nur Bestimmte Kontexte beschränken. Einige sind:

  • AuthConfig - Autorisierungsdirektiven, z. B. für die Standardauthentifizierung.
  • FileInfo - Direktiven, die sich mit der Einstellung von Headern, Fehlerdokumenten, Cookies, URL-Umschreibung und mehr befassen.
  • Indexes – Standardverzeichnislistenanpassungen.
  • Limit - Steuern Sie den Zugriff auf Seiten auf verschiedene Arten.
  • Options - Ähnlicher Zugriff auf Indexes, umfasst aber sogar weitere Werte wie ExecCGI, FollowSymLinks, Includes und mehr.

Vollständiges .htaccess Überschreiben

Ich zeige Ihnen einige Beispiele, ohne die entsprechenden <Directory>-Abschnitte. Hier ist ein Beispiel, das volles .htaccess überschreiben ermöglicht:

Begrenztes Überschreiben

Und hier ist ein Beispiel, das einen granularen Ansatz verfolgt und nur Überschreiben der Kontexte Autorisierung und Indexes erlaubt, aber sonst nichts:

Kommentare

Die erste Zeile in diesen beiden Beispielen sind Apache-Kommentare. Kommentare beginnen mit dem Symbol "#". Dies ist bei vielen Konfigurationsdateien und Skriptsprachen üblich. Ich werde viele Kommentare in meinen Beispielen haben, um zu erklären, was Dinge tun. Jedoch sind sie nicht erforderlich, und es ist wirklich nur persönliche Vorliebe, wie viel Sie kommentieren möchten. Kommentare sind nicht erforderlich.

Die zweite Zeile ist die AllowOverride-Direktive selbst. Dies ist die übliche Syntax einer Apache-Direktive. Zuerst gibt es den Direktivennamen"AllowOverride", gefolgt von einer getrennte Werteliste. Obwohl diese Syntax ziemlich locker aussieht; immer vorsichtig sein.

Manchmal führt sogar ein einzelner Fehler in Ihrer httpd.conf- oder .htaccess-Datei zu einer temporäre Kernschmelze des Servers, und Benutzer sehen 500 - Interner Serverfehler Seiten.

Schon aus diesem Grund ist es sinnvoll, immer eine Sicherung Ihrer httpd.conf- und .htaccess-Dateien zu erstellen, bevor Sie eine Änderung oder Ergänzung vornehmen. Auf diese Weise, wenn etwas mit einer Änderung schief geht, haben Sie nichts, worüber Sie sich Sorgen machen müssen, da Sie zu Ihrer vorherigen Arbeitsversion zurückkehren können. Ich werde Sie außerdem ermutigen, kleine Änderungen einzelnd vorzunehmen und zu überprüfen, ob die Änderungen funktionieren, im Gegensatz zu einer Reihe von Änderungen auf einmal. Auf diese Weise, wenn Sie ein Fehler machen, wird es viel einfacher sein, aufzuspüren, was es verursacht haben könnte.

Wenn Sie jemals über die Syntax einer Direktive verwirrt sind, gehen Sie sofortzum Apache-Direktive Listing, suchen die in der Tabelle aufgeführten "Syntax" auf und überprüft sie diese für jede einzelne Richtlinie. Ich werde mein Bestes tun, um es hier zu erklären (Ich versuche zu lehren), aber meine Erklärung kann nie so gut sein wie die formale technische Dokumentation selbst. Keine Angst vor der Dokumentation, es ist Ihre zuverlässigste und vertrauenswürdigste Referenz. Ich werde versuchen, die Dinge hier interessanter zu machen (woohoo!), aber am Ende legen ich einfach einen anderen Blickwinkel auf diese Dokumente.

Überprüfen, ob .htaccess aktiviert ist:

Es ist durchaus möglich, in der Tat ist es sehr wahrscheinlich, dass Ihr Hosting-Unternehmen Ihnen keinen Zugriff auf die Datei httpd.conf gewährt. Wie wissen Sie also, ob .htaccess-Unterstützung aktiviert ist? Keine Sorge, .htaccess ist eine sehr häufige und nützliche Funktion, die die meisten Unternehmen aktiviert haben, oder aktivieren wird, wenn Sie höflich fragen.

Das Beste, was zu tun wäre, wäre es Ihr Hosting-Unternehmen zu fragen. Wenn es nicht explizit an einer beliebigen Stelle in Ihrem Hosting-Plan aufgeführt ist, dann senden Sie ihre Support eine E-Mail. Dies ist eine relativ häufige Frage, so dass sie meistens wahrscheinlich bereits eine Antwort für Sie bereit haben. Sie werden wahrscheinlich bereit sein, den Dienst zu aktivieren oder zumindest einen Grund dafür zu nennen, warum er ihn möglicherweise nicht zulässt.

Auf jeden Fall können Sie es immer probieren und sehen, ob eine einfache .htaccess-Datei funktioniert! Im Beispiel-Download dieses Tutorials sind zwei Möglichkeiten enthalten, die Sie überprüfen können, um zu sehen, ob .htaccess Unterstützung aktiviert ist. Die beiden Ordner sind "is_htaccess_enabled" und "is_htaccess_enabled_2". Probieren Sie sie aus, ich werde erklären, was jeder hier tut.

is_htaccess_enabled

Dieser Testfall ist sehr einfach. Es verwendet eine Direktive, um Apache zunächst die Datei "index_good.html" dann "index.html" suchen lassen. Wenn .htaccess Support aktiviert ist, wird Apache die .htaccess Datei laden und wissen, dass er die Seite "index_good.html" mit einer grünen Botschaft mit dem Text "Herzlichen Glückwunsch" anzeigen soll. Wenn .htaccess-Unterstützung nicht aktiviert ist, ignoriert Apache standardmäßig die .htaccess Datei und sucht sofort nach einer index.html-Datei.

DirectoryIndex

Die DirectoryIndex-Direktive verwendet eine durch Leerzeichen getrennte Liste potenzieller Dateinamen. Wenn Apache eine URL eines Verzeichnisses und keine direkte Seite (zum Beispielhttp://www.example.com und nicht http://www.example.com/index.html) erhält, wird Apache diese Liste der Dateien verwenden und nach der korrekten zu ladenden Seite suchen. Apache wird die Werte dieser Liste von rechts nach links verwenden. Die erste Datei, die Apache findet wird die Datei sein, die er läd und dem Client ausliefert.

Unter Verwendung der obigen .htaccess-Datei gibt es hier ein Beispiel für die guten (aktivierten) und schlechten (deaktivierten) Fälle:

Good Apache RedirectedGood Apache RedirectedGood Apache Redirected
Bad htaccess IgnoredBad htaccess IgnoredBad htaccess Ignored

is_htaccess_enabled_2

Wie bereits erwähnt, führt ein Syntaxfehler in Ihrer .htaccess-Datei dazu, dass sich der Server verschluckt. Sie können dies zu Ihrem Vorteil nutzen, um zu testen, ob auf ihrem Server .htaccess-Unterstützung aktiviert ist! Hier ist ein Beispiel für eine .htaccess-Datei, die in die Luft gesprengt werden soll.

Es ist ziemlich klar, dass "AHHHHHHH" keine gültige Apache-Direktive ist. Dies wird dazu führen, dass es einen Fehler gibt, wenn Apache versucht, die .htaccess-Datei zu lesen! Wenn Sie eine Seite zurückbekommen, die "Interner Serverfehler" schreit, dann sucht Ihr Server nach .htaccess-Dateien! Wenn Sie tatsächlich den Inhalt der Datei index.html sehen, dann ist es wahrscheinlich, dass sie deaktiviert wurden. Auch hier die guten und schlechten Fälle:

Good Internal Service ErrorGood Internal Service ErrorGood Internal Service Error
Bad htaccess IgnoredBad htaccess IgnoredBad htaccess Ignored

AccessFileName

Schließlich ist es immer noch möglich, dass .htaccess-Unterstützung noch aktiviert ist, nur mit individuellen Einstellungen. Systemadministratoren können den Namen der .htaccess-Datei genauso ändern wie wir den Namen der Standarddatei geändert haben, nach der Apache sucht. Dies ist durch die Verwendung von der AccessFileName Direktive in der globalen Konfigurationsdatei möglich. Auch hier wäre es am besten, wenn Sie sich an Ihr Hosting-Unternehmen wenden, um weitere Informationen zu erhalten.

Konsequenzen von .htaccess-Dateien:

Bevor ich in einige der coolen Dinge, die Sie mit .htaccess Dateien tun können, muss ich Ihnen sagen, worauf Sie sich einlassen. Wie ich bereits erwähnt habe, erlauben Sie es, Servereinstellungen für ein Verzeichnis und alle zugehörigen Unterverzeichnisse überschreiben. Denken Sie daran, dass Sie für alle Unterverzeichnisse sowie das aktuelle Verzeichnis gelten.

Wenn diese Option aktiviert ist, wird der Server möglicherweise einen Leistungseinbruch erleiden. Der Grund dafür ist, dass Apache bei jeder Serveranforderung, wenn die .htaccess-Unterstützung aktiviert ist, beim Abrufen der angeforderten Datei für den Client nach einer .htaccess-Datei in jedem einzelnen Verzeichnis suchen muss, die zu dem Ort führt, an dem die Datei gespeichert ist.

Das bedeutet eine Reihe von Dingen. Erstens, weil Apache immer bei jeder Anfrage nach den .htaccess-Dateien sucht, werden alle Änderungen an der Datei sofort wirksam. Apache speichert sie nicht zwischen und wird Ihre Änderungen bei der nächsten Anforderung sofort sehen. Dies bedeutet jedoch auch, dass Apache für jede Anfrage zusätzliche Arbeit leisten muss. Wenn z. B. ein Benutzer /www/supercool/test/index.html anfordert, würde Ihr Server nach den folgenden .htaccess-Dateien suchen:

Diese potenziellen Dateizugriffe (potenziell, weil die Dateien möglicherweise nicht vorhanden sind) und deren Ausführung (falls vorhanden) wird einige Zeit in Anspruch nehmen. Auch hier ist meine Erfahrung, dass es unmerkbar ist und es überwiegt nicht die Vorteile und Flexibilität, die .htaccess Dateien Entwicklern bieten.

Wenn dies Sie jedoch betrifft , solange wie Sie Zugriff auf die Datei httpd.conf haben können Sie ihre Direktiven immer dort ablegen. Durch Festlegen von AllowOverride auf "None" sucht Apache nicht nach diesen .htaccess-Dateien. Wenn Sie wirklich wollen, können Sie die Direktiven, die Sie in Ihrer /www/supercool/test/.htaccess-Datei ablegen möchten folgendermaßen direkt in der httpd.conf ablegen:

Der Nachteil bei diesem Ansatz ist, dass Sie bei jeder Änderung den Apache-Server neu starten müssen, sodass die neue Konfiguration geladen wird.

Letztlich kommt es auf persönliche Vorlieben oder was auch immer Ihr Hoster zulässt an. Ich bevorzuge die Verwendung von .htaccess-Dateien, weil ich die Flexibilität habe, sie dort zu platzieren, wo ich will, und ihre Auswirkungen sofort live sind, ohne dass ein Server-Reset erforderlich ist.

Starten wir einfach - Directory Listing - Indexes:

Directory Listings

Bevor wir in eines der komplexen Features einsteigen, beginnen wir mit etwas einfach, aber nützlichem, so dass Sie ein Gefühl für die Arbeit mit .htaccess Dateien zu gewinnen. Direcotry Listings sind so häufig, dass Sie wahrscheinlich auf sie zahlreiche Male beim stöbern im web gestossen sind.

Wenn ein Benutzer ein Verzeichnis anfordert, sucht Apache zuerst nach der Standarddatei. In der Regel wird sie "index.html" oder "index.php" oder etwas ähnliches genannt. Wenn es keine dieser Dateien findet, es fällt auf das mod_autoindex Modul zurück, um eine Auflistung der Dateien und Ordner in diesem Verzeichnis anzeigen. Manchmal ist dies aktiviert, manchmal deaktiviert, und manchmal möchten Sie Anpassungen vornehmen. Nun, mit .htaccess können Sie diese Angebote leicht manipulieren!

Standardmäßig sind Directory Listings aktiviert. Hier ist ein Beispielszenario. Angenommen, Sie haben eine Reihe von Mediendateien, die Sie auf Ihrem Webserver speichern, und die Sie vor der Öffentlichkeit und Suchmaschinen verstecken möchten, so dass niemand diese Dateien stiehlt. Das geht sehr einfach! Erstellen Sie einfach eine .htaccess-Datei in dem Verzeichnis, das Sie ausblenden möchten, und fügen Sie die folgende Direktive hinzu:

Options Direktive

Um dieses aufzuschlüsseln, verwenden wir die Options-Direktive. Diese Direktive kann eine Reihe von Werten annehmen (wie zuvor erwähnt). Wenn Sie die Werte mit einem + oder - verwenden, wie ich es mit -Indexes gemacht habe, dann erbt dies die Options, die in höheren Verzeichnissen und der globalen Konfiguration aktiviert wurden! Wenn Sie keine + oder - verwenden, dann wird die Liste, die Sie zur Verfügung stellen, die einzigen Options, die für dieses Verzeichnis und seine Unterverzeichnisse aktiviert sind. Es werden keine anderen Options aktiviert. Da Sie möglicherweise nicht wissen, welche Options zuvor aktiviert wurden, verwenden Sie die + oder - Syntax, es sei denn, Sie sind absolut sicher, dass Sie nur bestimmte Optionen wollen.

Nun, mit dieser Direktive in Ihrer .htaccess-Datei, wenn Sie Ihren Browser auf dieses Verzeichnis verweisen, können Sie die Dateien nicht mehr sehen. Hier ist das Vorher und Nachher:

Before Normal Directory ListingBefore Normal Directory ListingBefore Normal Directory Listing
After Forbidden AccessAfter Forbidden AccessAfter Forbidden Access

Weiter geht's - Grundlegende Authentifizierung

Okay, vielleicht ist das völlige Deaktivieren des Verzeichnisindexes nicht das, was Sie wollen. Es ist wahrscheinlicher, dass Sie die Indexes beibehalten möchten, aber nur bestimmten Personen Zugriff gewähren möchten. Hier kann die Basic Authentication sehr nützlich sein. Dies ist die häufigste Art der Authentifizierung im Web. Wenn der Benutzer versucht, auf die Seite zuzugreifen, wird das vertraute Dialogfeld Benutzername/Kennwort angezeigt. Nur ein Benutzer mit den richtigen Anmeldeinformationen kann auf den Inhalt zugreifen.

Für die Standardauthentifizierung gibt es nur zwei Schritte.

  1. Richten Sie eine Datei ein, in der Benutzernamen und Kennwörter (verschlüsselt) gespeichert sind.
  2. Fügen Sie ein paar Zeilen zu .htaccess hinzu, um diese Datei zu verwenden.

Traditionell haben Webentwickler die Datei, in der die Benutzernamen und Passwörter gespeichert werden ".htpasswd" genannt. Dies liegt daran, dass das mit Apache gelieferte Kommandozeilentool, welches das richtige verschlüsselte Benutzername/Passwort-Paar generiert, htpasswd genannt wird! Wenn Sie sich an der Kommandozeile wohlfühlen, können Sie das htpasswd Programm nutzen, es jedoch gibt viele Online-Tools, die die Ausgabe genauso einfach generieren.

Ich habe eine Beispieldatei .htpasswd für einen Benutzer "joe" mit dem Passwort "cool" erstellt. Ich warf diese Werte in das verknüpfte Online-Tool und es produzierte:

Ihre Ausgabe kann anders sein, das ist okay. Die Kennwörter werden mit ein zufälliges Salz gehashed, um sie ein bisschen einzigartiger und sicherer zu machen. Sobald Ihre Benutzername und Passwort-Kombination der .htpasswd-Datei hinzugefügt wurde, sollten Sie der Datei die folgenden Zeilen hinzufügen:

Diese Befehle sind gut dokumentiert. Die einzige wirkliche Herausforderung ist, dass Sie Sie den Pfad zur .htpasswd-Datei richtig festlegen müssen, die Sie generiert haben. Dies ist ein vollständiger absoluter Pfad von der absoluten Wurzel des Servers. Da der .htpasswd-Dateipfad absolut ist, ist es auch gute Praxis, sie in einem Verzeichnis außerhalb des Verzeichnisses zu speichern, aus dem Apache Webseiten der Öffentlichkeit ausliefert. Auf diese Weise werden böswillige Benutzer nicht in der Lage sein, einfachen Zugriff auf die unformatierte Auflistung der Benutzer/Passwörter zu erhalten, die in der .htpasswd gespeichert sind.

Sobald alles eingerichtet ist, wird er, wenn jemand versucht, auf die Seite zuzugreifen, den folgenden Dialog erhalten:

Login DialogLogin DialogLogin Dialog

Die Standardauthentifizierung ist schön und einfach, aber keine Gesamtlösung. Passwörter werden, Base 64 Encoded, im Klartext über das Netz gesendet. Wenn Sie eine sicherere Authentifizierung möchten, sollten Sie die Standardauthentifizierung mit mit https koppeln, einem sicheren Protokoll. Dies ist ein Thema für ein anderes Mal.

Header

Das Kernprotokoll des Netzes ist das Hypertext Transfer Protocol (HTTP). Wenn Sie wirklich verstehen wollen, womit sich der Rest der Apache-Direktiven beschäftigt, sollten Sie über einige Kenntnisse des Protokolls verfügen. Ich werde nur eine sehr kurze Zusammenfassung hier machen. Ich werde mich auch anstrengen zu erklären, was die komplexeren Direktiven tun, aber es wird nachvollziehbarer sein, wenn Sie HTTP-Header verstehen.

Die kurze Zusammenfassung ist, dass HTTP zustandslos ist. Bei jeder Anfrage (vom Browser) und jede Antwort (vom Web Server wie Apache) gibt es zwei Abschnitte. Ein Abschnitt der Header-Informationen, dann ein optionaler Abschnitt mit den Daten selbst, sofern Daten vorhanden sind.

Request Header Informationen geben häufig die Datei an, die vom Server (index.html) angefordert wird, alle Statusinformationen, die sie bereitstellen sollten (z. B. Cookie-Daten) und die Mime-Typen, die sie vom Server zurück akzeptieren möchten (text/html oder sogar gzip-codierter Inhalt).

Response Header-Informationen geben häufig generische Serverinformationen an (Apache, PHP, Perl-Versionen usw.), die Inhaltscodierung, Länge, Mime/Typ und mehr. Es gibt eine Vielzahl von HTTP-Headern, um noch mehr Details wie Cache Control, Umleitungen und Statuscodes zu spezifizieren. Haben Sie schon einmal eine 404-Seite bekommen? Dies war das Ergebnis der Anfrage einer Datei, die der Server nicht finden konnte, und daher schickte er einen 404Statuscode in seiner Response

Was hat das mit .htaccess zu tun? Nun, Sie können Apache-Direktiven verwenden zum Überschreiben (set) oder Hinzufügen neuer Header (add), die im Response Header an den Client zurückgesendet werden. Auch, wie Sie in späteren Tutorials sehen werden, erweiterte Funktionen wie URL Rewriting befassen sich mit den eingehenden Headern.

Beginnen wir einfach, fügen wir der Response einen Header hinzu und sehen, was passiert:

Das Anfordern einer Datei im selben Verzeichnis wie diese .htaccess-Datei zeigt die zusätzlicher Header:

Custom Header Shown in Safaris Web InspectorCustom Header Shown in Safaris Web InspectorCustom Header Shown in Safaris Web Inspector

Sie dachten wahrscheinlich, es war eigenartig, dass ich dem benutzerdefinierten Header "X-" vorangestellt habe. Dies ist eigentlich eine allgemeine Konvention, die Entwickler verwenden, um zu bezeichnen, dass der Header ein nicht standardmäßiger Header ist. Dies macht es wirklich einfach zu erkennen, dass dieser Header benutzerdefinierte ist. Diese Konvention isthier kurz erwähnt.

In einer komischeren Note, einige Leute haben ein bisschen Spaß mit Headern gehabt.Diese Seite weist auf einige eher ungewöhnliche Header im gesamten Web hin.

Ich möchte Ihnen jedoch wirklich zeigen, wie Sie Header erstellen, damit Sie sie als Debugging-Technik verwenden. Erst vorgestern führte ich einen Test durch, um überprüfen, ob bestimmte Module auf einem Webserver aktiviert waren. Ich schrieb die folgende Prüfung:

Als ich meine nächste Anfrage mit meinem Browser stellte und die Antwort-Header überprüfte, zeigte sich, dass keines der Module eingeschaltet war! Ich kontaktierte mein Hosting-Unternehmen, und sie stimmten zu, gzip Kompression zu ermöglichen!

Es gibt einen Unterschied zwischen Header-Set und Header hinzufügen. Mit Add wird der Header immer zur Response hinzugefügt. Auch wenn es zufällig mehrmals in der Antwort angezeigt wird. Dies ist am häufigsten was Sie sich für benutzerdefinierte Header wünschen. Sie würden Set verwenden, wenn Sie den Wert eines der Standardheader, die Apache zurückgibt, überschreiben wollten. Ein Beispiel wäre das Überschreiben des Mime/Typs, der durch den Content-Type Header für eine bestimmte Datei. Apache würde den internen Wert festlegen und dann verwenden Sie diese Option, wenn der Standard Header ausgegeben wird. Es wird keine Duplikate und somit keine Möglichkeit für einen Fehler oder eine Verwechslung durch den Client geben. (Falls Sie sich fragen, besagt die HTTP-Spezifikation, dass der Client bei Duplikaten immer den zuletzt angegebenen Wert verwenden sollte für diesen doppelten Header verwenden sollte.)

Zusammenfassung:

Ich habe einige grundlegende Apache-Direktiven ausführlich behandelt. Ich wollte die grundlegenden Details aus dem Weg bekommen, so dass das nächste Tutorial coolere Dinge besprechen kann. Mein nächster Artikel wird wird sich sich auf einige der nützlicheren Funktionen, die Sie mit .htaccess aktivieren können, konzentrieren. Zu diesen Themen gehören:

  • GZip-Codierung von Inhalten für Apache 1.3 und Apache 2
  • Eine gründliche Beschreibung von mod_rewrite mit vielen Beispielen die seziert und ausführlich erläutert werden.
  • Folgen Sie uns auf Twitter oder abonnieren Sie den NETTUTS RSS Feed für mehr tägliche Web-Entwicklungs-Tutoren und -Artikel.

Und vergessen Sie nicht, wenn Sie Schwierigkeiten haben, dies zu folgen, ist eine andere Option, das .htaccess Builder-Dienstprogramm zu versuchen, das auf Envato Market verfügbar ist.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.