Das ultimative Handbuch für .htaccess-Dateien

Die .htaccess-Konfigurationsdateien von Apache haben unzählige Entwickler verblüfft. Dieses Tutorial zielt darauf ab, diese Verwirrung zu überwinden, indem es sich auf Beispiele und ausführliche Beschreibungen konzentriert. Zu den Vorteilen des Lernens der .htaccess-Konfiguration gehört das automatische Zippen von Inhalten, das Bereitstellen freundlicherer URLs, das Verhindern von Hotlinks, das Verbessern der Zwischenspeicherung usw..

Suchen Sie nach einer schnellen Lösung?

In diesem Artikel erfahren Sie, wie Sie Ihre .htaccess-Dateien manuell konfigurieren. Wenn Sie jedoch eine einfache und schnelle Lösung suchen, laden Sie den .htaccess Builder von Envato Market herunter. Sie können eine htaccess-Datei schnell und mühelos bereitstellen, ohne sich an die Sprache des Apache-Servers zu erinnern, die zum Erstellen der htaccess-Datei verwendet wird!

.htaccess Builder auf dem Envato-Markt

Einführung:

Ich habe eine Reihe von .htaccess-Artikeln online gelesen. Ich gebe schamlos zu
Ich bin nicht über die Titelseite der Google-Ergebnisse hinausgekommen. Ich war schockiert als
Ich habe die Artikel tatsächlich gelesen und festgestellt, dass keiner von ihnen erklärt, was Apache eigentlich ist
tun. Sie waren lediglich eine Sammlung beliebter oder nützlicher Tricks oder
Ausschnitte aus wiederverwendbarem Code. Das ist alles schön und gut, aber der Klassiker
Argument ist:

„Gib einem Mann einen Fisch und er wird für einen Tag essen. Lehre einen Mann das Fischen und er
werde ein Leben lang essen. "
- Konfuzius

In diesem Artikel werde ich versuchen, Ihnen nicht nur Beispiele für Nützliches zu zeigen
.htaccess Direktiven, aber genau erklären, was ist
los Auf diese Weise werden Sie die Kernprinzipien verstehen und können das erweitern
Beispiele oder erstellen Sie neue Befehle für Ihren eigenen Gebrauch auf beliebige kreative oder nützliche Weise
Sie können mit kommen.

Mein Fokus wird auf Apache 2 liegen, jedoch wird vieles davon zutreffen
zu Apache 1.3 und ich werde versuchen, auf Unterschiede hinzuweisen, von denen ich weiß.

Schließlich ist dieses Tutorial am sinnvollsten, wenn Sie es in der richtigen Reihenfolge lesen.
Ich versuche, meine Beispiele zusammenzubinden und davon zu bauen
So können Sie sie selbst ausprobieren und folgen.

Was ist .zugreifen ?:

Um Apache zu zitieren:

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

Richtlinien

"Direktiven" ist die Terminologie, die Apache für die Befehle in Apaches verwendet
Konfigurationsdateien. Normalerweise sind dies relativ kurze Befehle
Schlüsselwertpaare, die das Verhalten von Apache ändern. Eine .htaccess-Datei erlaubt
Entwickler eine Reihe dieser Anweisungen ausführen, ohne Zugriff auf
Die Hauptserver-Konfigurationsdatei von Apache, häufig als httpd.conf bezeichnet.
Diese Datei,
httpd.conf wird normalerweise als "globale Konfigurationsdatei" bezeichnet und ich werde es tun
Verweisen Sie es mit diesem Namen oder dem entsprechenden Dateinamen.

Diese Funktion ist ideal für viele Hosting-Unternehmen, die ein Shared Hosting bereitstellen
Umgebung. Das Hosting-Unternehmen erlaubt seinen Kunden keinen Zugriff auf die
globale Konfigurationsdatei, die sich auf alle Kunden auswirkt, auf denen gehostet wird
dieser Server Durch die Aktivierung von .htaccess geben sie stattdessen jeden ihrer Kunden an
die Fähigkeit, eigene Apache-Anweisungen in ihren eigenen Anweisungen festzulegen und auszuführen
Verzeichnisse und Unterverzeichnisse. Natürlich ist es auch für die Single nützlich
Entwickler, wie Sie sehen werden.

Es ist erwähnenswert, dass alles, was mit einer .htaccess-Datei gemacht werden kann, möglich ist
in der httpd.conf -Datei erfolgen. jedoch, NICHT alles, was in getan werden kann
httpd.conf kann in einer .htaccess-Datei ausgeführt werden. In der Tat müssen .htaccess-Dateien sein
in der Datei httpd.conf aktiviert, um überhaupt ausgeführt zu werden. Einmal aktiviert,
Ihre Macht kann auf bestimmte „Kontexte“ beschränkt sein, damit sie erlaubt werden
einige Einstellungen überschreiben, andere jedoch nicht. Dies gibt den Systemadministratoren
mehr Kontrolle über das, was sie anderen Entwicklern in ihren Dienst stellen
.Htaccess-Dateien.

.Htaccess aktivieren:

.htaccess-Dateien sind normalerweise standardmäßig aktiviert. Dies wird tatsächlich kontrolliert
von der AllowOverride-Direktive in der Datei httpd.conf. Diese Richtlinie
kann nur innerhalb eines platziert werden Sektion. Lassen Sie sich nicht verwirren
Sie. Die typische httpd.conf-Datei definiert DocumentRoot und die Mehrheit
der Datei enthält Direktiven in einem Abschnitt Umgang
mit diesem Verzeichnis. Dazu gehört die AllowOverride-Direktive.

Der Standardwert ist eigentlich "All" und somit werden .htaccess-Dateien von aktiviert
Standard. Ein alternativer Wert wäre "Keine", was bedeuten würde, dass sie es sind
vollständig deaktiviert Es gibt zahlreiche andere Werte, die die Konfiguration von nur einschränken
bestimmte Kontexte. Einige sind:

  • AuthConfig - Autorisierungsanweisungen, z. B. für die Basisauthentifizierung.
  • FileInfo - Anweisungen, die sich mit dem Setzen von Kopfzeilen, Fehlerdokumenten, Cookies, Umschreiben von URLs usw. befassen.
  • Indizes - Standardverzeichnisanpassungen.
  • Begrenzung - Kontrollieren Sie den Zugriff auf Seiten auf verschiedene Arten.
  • Optionen - Gleicher Zugriff auf Indizes, aber auch gleich
    Weitere Werte wie ExecCGI, FollowSymLinks, Includes und mehr.

Full .htaccess Überschreiben

Ich werde einige Beispiele zeigen, ohne dass sie übereinstimmen Abschnitte.
Hier ist ein Beispiel, das das vollständige Überschreiben von .htaccess ermöglicht:

# Erlauben Sie .htaccess-Dateien ihre volle Leistung. AllowOverride All

Begrenztes Überschreiben

Und hier ist ein Beispiel, das einen feinkörnigeren Ansatz verfolgt und nur zulässt
Überschreiben der Kontexte "Authorization" und "Indexes", aber sonst nichts:

# Erlauben Sie nur, dass .htaccess-Dateien Autorisierung und Indizes außer Kraft setzen. AllowOverride AuthConfig-Indizes

Bemerkungen

Die erste Zeile in diesen beiden Beispielen sind Apache-Kommentare. Kommentare beginnen
mit dem Symbol "#". Dies ist bei vielen Konfigurationsdateien und Skripten üblich
Sprachen. Ich werde in meinen Beispielen viele Kommentare enthalten, um zu erklären, was die Dinge bewirken.
Sie sind jedoch nicht erforderlich, und es ist wirklich nur eine persönliche Präferenz, wie viel Sie möchten
möchte kommentieren. Kommentare sind nicht erforderlich.

Die zweite Zeile ist die AllowOverride-Direktive. Dies ist die übliche Syntax von
Apache-Richtlinie. Zuerst gibt es den Direktiven Namen "AllowOverride", gefolgt von einem Leerzeichen
getrennte Werteliste. Obwohl diese Syntax eher locker wirkt; sei immer vorsichtig.

Manchmal führt auch ein einzelner Fehler in Ihrer httpd.conf- oder .htaccess-Datei zu einem Fehler
temporäre Kernschmelze des Servers, und den Benutzern werden 500 Seiten für interne Serverfehler angezeigt.

Aus diesem Grund sollten Sie Ihre httpd.conf- und .htaccess-Dateien unbedingt sichern, bevor Sie Änderungen oder Ergänzungen vornehmen. Auf diese Weise müssen Sie eine Änderung vornehmen, wenn etwas schief geht
nichts, worüber Sie sich Sorgen machen müssen, da Sie zu Ihrer vorherigen Arbeitsversion zurückkehren können. ich werde
Ermutigen Sie auch, kleine Änderungen gleichzeitig vorzunehmen und zu überprüfen, ob die Änderungen funktionieren
Inkremente im Gegensatz zu einer Reihe von Änderungen auf einmal.
Auf diese Weise, wenn Sie machen
ein Fehler, es wird viel einfacher zu finden, was es verursacht hat.

Wenn Sie jemals mit der Syntax einer Anweisung verwirrt sind, gehen Sie sofort zum Befehl
Die Apache-Direktive listet die in der Tabelle aufgeführten "Syntax" auf und überprüft sie
für jede einzelne Richtlinie. Ich werde mein Bestes geben, um es hier zu versuchen und zu erklären
(Ich versuche zu lehren), aber meine Erklärung kann niemals so gut sein wie die
formale technische Dokumentation selbst. Habe niemals Angst vor der Dokumentation
Ihre zuverlässigste und vertrauenswürdigste Referenz. Ich werde versuchen, die Dinge interessanter zu machen
hier (woohoo!), aber am Ende werde ich diese Docs einfach anders machen.

Überprüfen, ob .htaccess aktiviert ist:

Es ist durchaus möglich, dass Ihre Hosting-Firma dies höchstwahrscheinlich nicht tut
geben Sie Zugriff auf die Datei httpd.conf. Woher wissen Sie, ob die Unterstützung für .htaccess aktiviert ist?
oder nicht? Machen Sie sich keine Sorgen, .htaccess ist eine sehr häufige und nützliche Funktion, die die meisten Unternehmen nutzen werden
aktiviert haben oder aktivieren, wenn Sie höflich fragen.

Das Beste, was Sie tun können, ist, sich bei Ihrem Hosting-Unternehmen zu erkundigen. Wenn es nicht explizit geht
irgendwo in Ihrem Hosting-Plan aufgeführt, schießen Sie dann eine E-Mail an den Support. Dies ist relativ häufig
Frage, so dass sie meistens bereits eine Antwort für Sie bereit haben. Sie werden wahrscheinlich bereit sein
um den Dienst zu aktivieren oder zumindest einen Grund zu geben, warum er dies nicht zulässt.

In jedem Fall können Sie es immer versuchen und sehen, ob eine einfache .htaccess-Datei funktioniert!
Im Beispieldownload dieses Tutorials sind zwei Möglichkeiten enthalten, mit denen Sie prüfen können, ob .htaccess vorhanden ist
Unterstützung ist aktiviert. Die zwei Ordner sind "is_htaccess_enabled" und "is_htaccess_enabled_2"..
Gib ihnen eine Chance, ich erkläre, was jeder hier macht.

is_htaccess_enabled

Dieser Testfall ist sehr einfach. Es verwendet eine Direktive, um Apache aussehen zu lassen
zuerst für den “Indexgood.html “vor" index.html ". Wenn .htaccess unterstützt wird
Wenn Sie Ihren Browser auf den Ordner zeigen, lädt Apache die .htaccess-Datei und weiß dies
es sollte den "Index" anzeigen
good.html ”Seite mit einer grünen Nachricht mit der Aufschrift Herzlichen Glückwunsch!
Wenn die .htaccess-Unterstützung nicht aktiviert ist, ignoriert Apache standardmäßig die .htaccess
Datei und suchen Sie sofort nach einer index.html-Datei.

# Durch diese Direktive wird Apache zuerst # nach "index_good.html" suchen, bevor nach "index.html" DirectoryIndex index_good.html index.html gesucht wird

DirectoryIndex

Die DirectoryIndex-Direktive verwendet eine durch Leerzeichen getrennte Liste potenzieller Dateinamen.
Wenn Apache eine URL eines Verzeichnisses und keine direkte Seite (z. B.
http://www.example.com und nicht http://www.example.com/index.html) Apache verwendet dies
Liste der Dateien, nach denen gesucht werden soll. Apache sucht nach den Dateien
Verwenden Sie die Werte in der Liste von links nach rechts. Die erste Datei, die Apache sieht, ist vorhanden
wird die Datei sein, die geladen und dem Client angezeigt wird.

Wenn Sie die oben genannte .htaccess-Datei verwenden, finden Sie hier ein Beispiel für die guten (aktivierten) und schlechten (deaktivierten) Fälle:

is_htaccess_enabled_2

Wie bereits erwähnt, wird der Server aufgrund eines Syntaxfehlers in Ihrer .htaccess-Datei hiccup.
Sie können dies zu Ihrem Vorteil verwenden, um zu testen, ob auf Ihrem Server die Unterstützung für .htaccess aktiviert ist!
Hier ist ein Beispiel für eine .htaccess-Datei, die explodieren soll.

# Diese Datei soll Apache zum Blasen bringen. Dies hilft # festzustellen, ob .htaccess aktiviert ist oder nicht! AHHHHHHH

Es ist ziemlich klar, dass „AHHHHHHH“ keine gültige Apache-Direktive ist. Dies wird verursachen
ein Fehler, wenn Apache versucht, die .htaccess-Datei zu lesen! Also, wenn Sie eine Seite zurückschreien
"Interner Serverfehler", dann sucht Ihr Server nach .htaccess-Dateien! Wenn du tatsächlich
Wenn Sie den Inhalt der Datei index.html sehen, ist es wahrscheinlich, dass sie deaktiviert wurden. Hier sind wieder die guten und die schlechten Fälle:

AccessFileName

Schließlich ist es immer noch möglich, dass die .htaccess-Unterstützung nur mit aktiviert ist
einzigartige Einstellungen. Systemadministratoren können den Namen der .htaccess-Datei einfach ändern
Wir haben den Namen der Standarddatei geändert, nach der Apache sucht. Dies ist möglich durch
mit dem AccessFileName
Direktive in der globalen Konfigurationsdatei. Das Beste, was in diesem Fall zu tun ist, wäre zu tun
Weitere Informationen erhalten Sie von Ihrem Hosting-Unternehmen.

Folgen von .htaccess-Dateien:

Bevor ich mich mit den coolen Dingen beschäftige, die Sie mit .htaccess-Dateien machen können, muss ich
Sag dir, worauf du dich einlässt. Wie ich bereits erwähnt habe, erlaubst du
Servereinstellungen für ein Verzeichnis überschreiben und alle seine Unterverzeichnisse. Immer
Denken Sie daran, dass Sie alle Unterverzeichnisse sowie die aktuellen beeinflussen
Verzeichnis.

Wenn diese Option aktiviert ist, nimmt der Server möglicherweise die Leistung ab. Der Grund ist weil, jeden Serveranforderung: Wenn die .htaccess-Unterstützung aktiviert ist, muss Apache beim Aufruf der angeforderten Datei für den Client nach einer .htaccess-Datei in jedem einzelnen Verzeichnis suchen, das zu dem Speicherort der Datei führt.

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

/www/.htaccess /www/supercool/.htaccess /www/supercool/test/.htaccess

Diese potenziellen Dateizugriffe (möglicherweise, weil die Dateien möglicherweise nicht vorhanden sind) und ihre
Die Ausführung (falls vorhanden) wird einige Zeit in Anspruch nehmen. Wieder ist meine Erfahrung, dass es ist
unbemerkt und es wiegt nicht die Vorteile und Flexibilität, die .htaccess
Dateien bieten Entwickler.

Wenn dies jedoch Sie betrifft, so lange Sie Zugriff auf die Datei httpd.conf haben
dann können Sie immer Ihre Anweisungen dort setzen. Indem Sie AllowOverride auf "None" setzen
Apache sucht nicht nach diesen .htaccess-Dateien. Wenn Sie wirklich wollen, können Sie setzen
Die Anweisungen, die Sie in Ihre Datei /www/supercool/test/.htaccess einfügen wollten
direkt in httpd.conf wie folgt:

 # Richtlinien hier einfügen 

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

Am Ende kommt es auf persönliche Vorlieben an oder was auch immer Ihr Gastgeber erlaubt.
Ich ziehe es vor, .htaccess-Dateien zu verwenden, da ich sie flexibel platzieren kann
Ich möchte, und ihre Auswirkungen sind sofort live, ohne dass ein Server-Reset erforderlich ist.

Simple starten - Verzeichnisliste - Indizes:

Verzeichnislisten

Bevor wir uns mit den komplexen Funktionen beschäftigen, beginnen wir mit etwas
einfach, aber nützlich, damit Sie ein Gefühl für die Arbeit mit .htaccess-Dateien bekommen.
Verzeichnislisten sind so häufig, dass Sie wahrscheinlich zahlreich auf sie gestoßen sind
mal im Internet surfen.

Wenn ein Benutzer ein Verzeichnis anfordert, sucht Apache zuerst nach der Standarddatei. Normalerweise heißt es "index.html" oder "index.php" oder etwas Ähnliches. Wenn es nicht geht
Findet man eine dieser Dateien, so greift man auf das mod_autoindex-Modul zurück
Zeigt eine Liste der Dateien und Ordner in diesem Verzeichnis an. Manchmal das
ist aktiviert, manchmal deaktiviert und manchmal möchten Sie
Anpassungen vornehmen. Nun, mit .htaccess können Sie diese Listen leicht manipulieren!

Standardmäßig sind Verzeichnislisten aktiviert. Hier ist ein Beispielszenario.
Angenommen, Sie haben eine Reihe von Mediendateien, die Sie auf Ihrem Webserver speichern,
und Sie möchten sie vor der Öffentlichkeit und den Suchmaschinen verbergen, damit es niemand kann
stehlen Sie diese Dateien. Das ist sehr leicht zu machen! Erstellen Sie einfach eine .htaccess-Datei
In dem Verzeichnis, das Sie ausblenden möchten, und fügen Sie die folgende Direktive hinzu:

# Deaktivieren Sie die Verzeichnislisten in diesem Verzeichnis und diesen Unterverzeichnissen. # Dadurch werden die Dateien vor der Öffentlichkeit ausgeblendet, sofern sie keine direkten URLs kennen

Optionsrichtlinie

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

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

Forge Ahead - Basisauthentifizierung

Okay, vielleicht ist das vollständige Deaktivieren des Verzeichnisindex nicht das, was Sie wollen. Es ist mehr
Wahrscheinlich möchten Sie die Indizes behalten, aber nur bestimmten Personen Zugriff gewähren.
Hier kann die Basisauthentifizierung sehr nützlich sein. Dies ist die häufigste
Art der Authentifizierung im Web. Wenn der Benutzer versucht, auf die Seite zuzugreifen, wird er angezeigt
wird das bekannte Dialogfeld Benutzername / Passwort angezeigt. Nur ein Benutzer mit dem richtigen
Anmeldeinformationen können auf den Inhalt zugreifen.

Für die Basisauthentifizierung gibt es nur zwei Schritte.

  1. Richten Sie eine Datei ein, in der Benutzernamen und Kennwort (verschlüsselt) gespeichert werden..
  2. Fügen Sie .htaccess einige Zeilen hinzu, um diese Datei zu verwenden.

Üblicherweise haben Webentwickler die Datei benannt, in der die Benutzernamen und gespeichert sind
Passwörter “.htpasswd”. Dies liegt daran, dass das Befehlszeilentool, mit dem es geliefert wird
Apache, der das richtige verschlüsselte Paar aus Benutzername und Kennwort generiert, ist tatsächlich
htpasswd genannt! Wenn Sie sich in der Befehlszeile wohl fühlen, können Sie htpasswd verwenden
Tool, es gibt jedoch viele Online-Tools, die die Ausgabe genauso einfach generieren.

Ich habe eine .htpasswd-Beispieldatei für einen Benutzer "joe" mit dem Kennwort "cool" erstellt..
Ich habe diese Werte in das verknüpfte Online-Tool gesteckt und es hat Folgendes produziert:

joe: $ apr1 $ QneYj /… $ 0G9cBfG2CdFGwia.AHFtR1

Ihre Ausgabe könnte anders sein, das ist in Ordnung. Die Passwörter werden mit gehasht
ein zufälliges Salz, um sie etwas einzigartiger und sicherer zu machen. Einmal dein Benutzername
und die Passwortkombination wurde der .htpasswd-Datei hinzugefügt, dann sollten Sie dies tun
Fügen Sie Ihrer Datei folgende Zeilen hinzu:

# Standardauthentifizierung aktivieren AuthType Basic # Dies wird dem Benutzer im Anmeldedialogfeld angezeigt. AuthName "Zugriff auf die versteckten Dateien" # Dies müssen Sie bearbeiten. Dies ist der absolute Pfad zur .htpasswd-Datei. AuthUserFile /path/to/.htpasswd # Mit dieser Option kann jeder Benutzer innerhalb der .htpasswd-Datei auf den Inhalt von # zugreifen, wenn er den richtigen Benutzernamen und das richtige Kennwort angibt. Erlaube einen gültigen Benutzer

Diese Befehle sind gut dokumentiert. Die einzige echte Herausforderung ist, dass Sie
müssen den Pfad auf die gerade von Ihnen angegebene .htpasswd-Datei setzen
generiert. Dies ist ein vollständiger absoluter Pfad von der absoluten Wurzel von
Server. Da der .htpasswd-Dateipfad absolut ist, ist er auch gut
üben Sie es in ein Verzeichnis außerhalb des Verzeichnisses, in dem sich Apache befindet
stellt Webseiten der Öffentlichkeit zur Verfügung. Auf diese Weise können böswillige Benutzer nicht in der Lage sein
um auf einfache Weise Zugriff auf die in der .htpasswd gespeicherte unformatierte Liste von Benutzern / Kennwörtern zu erhalten.

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

Die Basisauthentifizierung ist einfach und unkompliziert, jedoch keine Gesamtlösung.
Passwörter werden über das Kabel (Base 64 Encoded) im Klartext gesendet. Wenn du
Wenn Sie eine sicherere Authentifizierung wünschen, sollten Sie die Basisauthentifizierung koppeln
mit https ein mehr
sicheres Protokoll. Das ist ein anderes Thema.

Kopfzeilen

Das Kernprotokoll des Webs ist das Hypertext Transfer Protocol (HTTP)..
Wenn Sie wirklich wissen wollen, was der Rest der Apache-Anweisungen ist
Sie sollten sich mit dem Protokoll auskennen. Ich bin
Ich werde hier nur eine kurze Zusammenfassung geben. Ich werde mich auch bemühen
zu erklären, was die komplexeren Richtlinien tun, aber es wird es machen
Sinnvoller, wenn Sie HTTP-Header verstehen.

Die kurze Zusammenfassung ist, dass HTTP zustandslos ist. Bei jeder Anfrage (vom Browser)
und jede Antwort (vom Webserver wie Apache) besteht aus zwei Abschnitten.
Ein Abschnitt mit Header-Informationen, dann ein optionaler Abschnitt, der die Daten selbst enthält,
wenn es irgendwelche Daten gibt.

Informationen zum Anforderungsheader geben oft die Datei an, in der sie sich befinden
von dem Server (index.html) anzufragen, welche Statusinformationen sie bereitstellen sollen
(z. B. Cookie-Daten) und die MIME-Typen, die vom Server akzeptiert werden sollen
(Text / HTML oder sogar GZIP-kodierter Inhalt).

Antwortheaderinformationen enthalten häufig allgemeine Serverinformationen (Apache, PHP),
Perl-Versionen usw.), die Inhaltskodierung, Länge, MIME / Typ und mehr. Dort
Es gibt eine Vielzahl von HTTP-Headern, um noch mehr Details wie Cache Control anzugeben,
Weiterleitungen und Statuscodes. Schon mal eine 404 bekommen? Das war das Ergebnis einer Anfrage
Datei, die der Server nicht finden konnte, und daher eine 404 zurückgesendet
Statuscode in seiner
Antwort.

Was hat das mit .htaccess zu tun? Nun, Sie können Apache-Direktiven dazu verwenden
überschreiben (setzen) oder neue Header hinzufügen (hinzufügen), die an den Client zurückgesendet werden
im Header der Antwort. Wie Sie in späteren Tutorials sehen werden,
Erweiterte Funktionen wie das Umschreiben von URLs behandeln die eingehenden Header.

Fangen wir einfach an, wir fügen der Antwort einen Header hinzu und sehen, was passiert:

# Fügen Sie zu jeder Antwort den folgenden Header hinzu. Header X-HeaderName "Header Value" hinzufügen

Das Anfordern einer Datei in demselben Verzeichnis wie diese .htaccess-Datei zeigt die
extra Header:

Sie haben wahrscheinlich gedacht, es sei eigenartig, dass ich dem benutzerdefinierten Header vorangestellt bin
"X-". Dies ist eine übliche Konvention, mit der Entwickler das bezeichnen
Der Header ist ein nicht standardmäßiger Header. Dies macht es sehr einfach zu realisieren, dass dieser Header benutzerdefiniert ist. Diese Konvention ist
hier kurz erwähnt.

Komischerweise haben einige Leute ein bisschen Spaß mit Headern gehabt.
Diese Seite
weist auf einige ungewöhnliche Header hin, die im gesamten Web zu finden sind.

Ich möchte Ihnen jedoch wirklich zeigen, wie Header erstellt werden, damit Sie es können
Verwenden Sie sie als Debugging-Technik. Erst neulich habe ich einen Test gemacht
Prüfen Sie, ob bestimmte Module auf einem Webserver aktiviert sind. Ich hab geschrieben
die folgende überprüfung:

 Header addiere X-Enabled mod_gzip   Header addiere X-fähige mod_deflate 

Als ich meine nächste Anfrage mit meinem Browser abgab und die Antwortheader überprüfte, war es der Fall
zeigte, dass keines der Module eingeschaltet war! Ich kontaktierte mein Hosting-Unternehmen und sie stimmten der Aktivierung der gzip-Komprimierung zu!

Es gibt einen Unterschied zwischen Kopfsatz und
Header hinzufügen Mit add wird der Header angezeigt immer hinzugefügt werden
zur Antwort. Auch wenn es in der Antwort mehrfach vorkommt. Dies ist am häufigsten
was Sie für benutzerdefinierte Header wünschen. Sie würden set verwenden, wenn Sie möchten
überschreiben Sie den Wert eines der von Apache zurückgegebenen Standardheader. Ein
Das Beispiel würde den durch den Content-Type angegebenen Mime / Typ überschreiben
Header für eine bestimmte Datei. Apache würde den internen Wert einstellen und dann
Verwenden Sie dies, wenn Sie den Standardheader ausdrucken. Es wird kein geben
Duplikate, und somit keine Möglichkeit, einen Fehler oder eine Verwirrung zu interpretieren
vom Kunden (Falls Sie sich gefragt haben, besagt die HTTP-Spezifikation, dass
Im Falle von Duplikaten sollte der Client immer den zuletzt angegebenen Wert verwenden
für diesen doppelten Header.)

Fazit:

Ich habe einige grundlegende Apache-Anweisungen ausführlich durchgearbeitet. Ich wollte die grundlegenden Details aus dem Weg räumen, damit das nächste Tutorial coolere Dinge besprechen kann. Mein nächster Artikel wird
konzentrieren Sie sich auf einige der nützlicheren Funktionen, die Sie mit .htaccess aktivieren können.
Diese Themen umfassen:

  • GZip-Codierung des Inhalts für Apache 1.3 und Apache 2
  • Eine ausführliche Beschreibung von mod_rewrite und viele Beispiele
    die seziert und detailliert erklärt werden.
  • Folgen Sie uns auf Twitter oder abonnieren Sie den NETTUTS-RSS-Feed für mehr tägliche Webentwicklungsberichte und -artikel.

Und vergessen Sie nicht, wenn Sie Schwierigkeiten haben, diesem zu folgen, können Sie das .htaccess Builder-Dienstprogramm von Envato Market ausprobieren.