Apache HTTP Server Version 2.2

| Beschreibung: | Ständig verfügbare Kernfunktionen des Apache HTTP Servers |
|---|---|
| Status: | Core |
AcceptPathInfo
AccessFileName
AddDefaultCharset
AddOutputFilterByType
AllowEncodedSlashes
AllowOverride
AuthName
AuthType
CGIMapExtension
ContentDigest
DefaultType
<Directory>
<DirectoryMatch>
DocumentRoot
EnableMMAP
EnableSendfile
ErrorDocument
ErrorLog
FileETag
<Files>
<FilesMatch>
ForceType
HostnameLookups
<IfDefine>
<IfModule>
Include
KeepAlive
KeepAliveTimeout
<Limit>
<LimitExcept>
LimitInternalRecursion
LimitRequestBody
LimitRequestFields
LimitRequestFieldSize
LimitRequestLine
LimitXMLRequestBody
<Location>
<LocationMatch>
LogLevel
MaxKeepAliveRequests
NameVirtualHost
Options
Require
RLimitCPU
RLimitMEM
RLimitNPROC
Satisfy
ScriptInterpreterSource
ServerAdmin
ServerAlias
ServerName
ServerPath
ServerRoot
ServerSignature
ServerTokens
SetHandler
SetInputFilter
SetOutputFilter
TimeOut
UseCanonicalName
<VirtualHost>| Beschreibung: | Ressourcen lassen angehängte Pfadangaben zu |
|---|---|
| Syntax: | AcceptPathInfo On|Off|Default |
| Voreinstellung: | AcceptPathInfo Default |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Verfügbar ab Apache 2.0.30 |
Die Direktive steuert, ob Anfragen akzeptiert oder
abgewiesen werden, bei denen nach der tatsächlichen
Datei (oder einer nicht existierenden Datei in einem existierenden
Verzeichnis) zusätzliche Pfadangaben folgen. Die angehängte
Pfadangabe kann Skripten in der Umgebungsvariable PATH_INFO
verfügbar gemacht werden.
Nehmen wir beispielsweise an, dass /test/ auf ein
Verzeichnis zeigt, welches lediglich eine Datei here.html
enthält. Dann wird bei Anfragen nach
/test/here.html/more und
/test/nothere.html/more beides Mal /more
als PATH_INFO ermittelt.
Die drei möglichen Argumente für die Direktive
AcceptPathInfo sind:
Off/test/here.html/more im obigen Beispiel, den Fehler
404 NOT FOUND (Anm.d.Ü.: nicht gefunden)
zurückgeben.On/test/here.html/more wird akzeptiert,
wenn /test/here.html auf eine gültige Datei
zeigt.DefaultPATH_INFO-Zugriffe
standardmäßig zurück. Handler, die Skripte bedienen,
wie z.B. cgi-script und
isapi-handler, sind im Allgemeinen darauf
voreingestellt, PATH_INFO zu akzeptieren.Das eigentliche Ziel von AcceptPathInfo ist es, Ihnen
das Überschreiben der Voreinstellung der Handler bezüglich
der Akzeptanz oder Ablehnung von PATH_INFO zu erlauben.
Eine solche Änderung ist zum Beispiel notwendig, wenn Sie einen
Filter wie INCLUDES verwenden, um Inhalte
abhängig von PATH_INFO zu generieren. Der
Core-Handler würde die Anfrage normalerweise abweisen. Verwenden
Sie die folgende Konfiguration, um dennoch solch ein Skript zu
ermöglichen.
<Files "mypaths.shtml">
Options +Includes
SetOutputFilter INCLUDES
AcceptPathInfo On
</Files>
| Beschreibung: | Name der dezentralen Konfigurationsdateien |
|---|---|
| Syntax: | AccessFileName Dateiname [Dateiname] ... |
| Voreinstellung: | AccessFileName .htaccess |
| Kontext: | Serverkonfiguration, Virtual Host |
| Status: | Core |
| Modul: | core |
Aus dieser Namensliste sucht der Server während der Bearbeitung einer Anfrage in jedem Verzeichnis nach der ersten existierenden Datei, sofern im betreffenden Verzeichnis dezentrale Konfigurationsdateien erlaubt sind. Beispiel:
AccessFileName .acl
Vor der Rücksendung des Dokuments
/usr/local/web/index.html wird der Server
/.acl, /usr/.acl,
/usr/local/.acl und /usr/local/web/.acl
einlesen, solange diese nicht mit
<Directory />
AllowOverride None
</Directory>
deaktiviert wurden.
| Beschreibung: | Standard-Charset-Parameter, der bei Antworten vom Content-Type
text/plain oder text/html hinzugefügt wird
|
|---|---|
| Syntax: | AddDefaultCharset On|Off|Zeichenkodierung |
| Voreinstellung: | AddDefaultCharset Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
Die Direktive gibt einen Standardwert für den Charset-Paramter des
Medientyps (den Namen einer Zeichencodierung) an, der einer Antwort
genau dann hinzugefügt wird, wenn der Content-Type der Antwort entweder
text/plain oder text/html ist. Dies sollte jedes
mittels META-Element im Datenteil der Antwort angegebene
Charset überschreiben. Das genaue Verhalten hängt jedoch oft von
der Client-Konfiguration des Benutzers ab. Die Einstellung
AddDefaultCharset Off deaktiviert diese Funktionalität.
AddDefaultCharset On aktiviert die Standard-Zeichenkodierung
iso-8859-1. Jeder andere Wert wird als die zu verwendende
Zeichenkodierung aufgefaßt, die eines der bei IANA registrierten
Charset-Werte zur Verwendung in MIME-Medientypen sein sollte. Zum
Beispiel:
AddDefaultCharset utf-8
AddDefaultCharset sollte nur verwendet werden,
wenn von allen Textressourcen, für die es gilt, bekannt ist, dass sie
in dieser Zeichkodierung vorliegen, oder wenn es zu unbequem ist, ihre
Zeichenkodierung indivuell zu benennen. Ein solches Beispiel ist das
Hinzufügen des Charset-Parameters zu Ressourcen, die generierte
Inhalte enthalten. Ein Beispiel sind CGI-Skript-Altlasten, die aufgrund von
in die Ausgabe integrierten Daten, die durch den Benutzer übermittelt
wurden, gegen Cross-Site-Scripting-Angriffe verwundbar sind. Eine bessere
Lösung wäre jedoch, diese Skripte zu korrigieren (oder zu
löschen), da die Angabe einer Standard-Zeichencodierung keine
Anwender schützt, die in ihrem Browser die Funktion zur
automatischen Erkennung der Zeichenkodierung aktiviert haben.
| Beschreibung: | einen Ausgabefilter einem bestimmten MIME-Type zuordnen |
|---|---|
| Syntax: | AddOutputFilterByType Filter[;Filter...]
MIME-Type [MIME-Type] ... |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Verfügbar ab Apache 2.0.33 |
Die Direktive aktiviert für eine Anfrage abhängig vom MIME-Type der Antwort einen bestimmten Ausgabe-Filter.
Das folgende Beispiel verwendet den Filter DEFLATE,
der von mod_deflate angeboten wird. Er komprimiert
jede Ausgabe, die als text/html oder text/plain
gekennzeichnet ist, (gleichgültig, ob statisch oder dynamisch)
bevor sie an den Client gesendet wird.
AddOutputFilterByType DEFLATE text/html text/plain
Wenn Sie den Inhalt von mehr als einem Filter verarbeiten lassen
wollen, dann müssen deren Namen durch Semikolons voneinander
getrennt werden. Es ist ebenfalls möglich, eine
AddOutputFilterByType-Direktive für
jeden von diesen Filtern zu verwenden.
Die folgende Konfiguration sorgt dafür, dass alle
Skriptausgaben, die als text/html gekennzeichnet
sind, zuerst vom INCLUDES-Filter und dann vom
DEFLATE-Filter verarbeitet werden.
<Location /cgi-bin/>
Options Includes
AddOutputFilterByType INCLUDES;DEFLATE text/html
</Location>
Die Aktivierung von Filtern mittels
AddOutputFilterByType kann in einigen
Fällen ganz oder teilweise fehlschlagen. Beispielsweise
werden keine Filter angewendet, wenn der MIME-Type nicht bestimmt
werden kann und auf die Einstellung der DefaultType-Anweisung zurückfällt,
selbst wenn die DefaultType-Einstellung die gleiche ist.
Wenn Sie jedoch sicherstellen wollen, dass der Filter
angewendet wird, sollten Sie den Content-Type z.B. mit
AddType oder
ForceType der Ressource
explizit zuordnen. Das Setzen des Content-Types innerhalb
eines (nicht-nph) CGI-Skriptes funktioniert ebenfalls
zuverlässig.
Die Typ-gebundenen Ausgabefilter werden niemals auf Proxy-Anfragen angewendet.
| Beschreibung: | Legt fest, ob kodierte Pfadtrennzeichen in URLs durchgereicht werden dürfen |
|---|---|
| Syntax: | AllowEncodedSlashes On|Off |
| Voreinstellung: | AllowEncodedSlashes Off |
| Kontext: | Serverkonfiguration, Virtual Host |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Verfügbar ab Apache 2.0.46 |
Die AllowEncodedSlashes-Direktive erlaubt die
Verwendung von URLs, welche kodierte Pfadtrennzeichen (%2F
für / und auf entsprechenden Systemen zusätzlich
%5C für \) enthalten. Normalerweise werden
derartige URLs mit einem 404-Fehler (Nicht gefunden) abgewiesen.
AllowEncodedSlashes On ist
vor allem in Verbindung mit PATH_INFO hilfreich.
Das Erlauben von Schrägstrichen impliziert nicht deren
Dekodierung. Vorkommen von %2F oder %5C
(nur auf entsprechenden Systemen) werden unverändert in der
ansonsten dekodierten URL belassen.
| Beschreibung: | Direktiven-Typen, die in .htaccess-Dateien
erlaubt sind. |
|---|---|
| Syntax: | AllowOverride All|None|Direktiven-Typ
[Direktiven-Typ] ... |
| Voreinstellung: | AllowOverride All |
| Kontext: | Verzeichnis |
| Status: | Core |
| Modul: | core |
Wenn der Server eine .htaccess-Datei (wie durch
AccessFileName definiert)
findet, muss er wissen, welche in der Datei angegebenen Direktiven
frühere Konfigurationsanweisungen überschreiben
dürfen.
AllowOverride ist nur in <Directory>-Abschnitten
gültig, die ohne reguläre Ausdrücke definiert wurden, nicht
in <Location>-,
<DirectoryMatch>- oder
<Files>-Abschnitten.
Wenn diese Anweisung auf None gesetzt wird, dann
werden .htaccess-Dateien komplett
ignoriert. In diesem Fall wird der Server nicht einmal versuchen,
die .htaccess-Dateien im Dateisystem zu lesen.
Wenn diese Anweisung auf All gesetzt wird, dann
ist jede Direktive in den .htaccess-Dateien erlaubt,
die den Kontext
.htaccess besitzt.
Der Direktiven-Typ kann eine der folgenden Anweisungsgruppen sein.
AuthDBMGroupFile,
AuthDBMUserFile,
AuthGroupFile,
AuthName,
AuthType, AuthUserFile, Require usw.).DefaultType, ErrorDocument, ForceType, LanguagePriority,
SetHandler, SetInputFilter, SetOutputFilter, und
mod_mime-Direktiven Add* und Remove*
usw.).AddDescription,
AddIcon, AddIconByEncoding,
AddIconByType,
DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName
usw.).Allow, Deny und Order).Options
und XBitHack). Sie
können mit einem Gleichheitszeichen gefolgt von einer
kommaseparierten Liste (ohne Leerzeichen) angeben, welche Optionen mit
der Options-Direktive gesetzt
werden dürfen.Beispiel:
AllowOverride AuthConfig Indexes
Im obigen Beispiel erzeugen alle Direktiven einen internal server
error (Anm.d.Ü.: Server-interner Fehler), die weder der
Gruppe AuthConfig noch der Gruppe Indexes
angehören.
| Beschreibung: | Autorisierungsbereich zur Verwendung in der HTTP-Authentisierung |
|---|---|
| Syntax: | AuthName auth-Bereich |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | AuthConfig |
| Status: | Core |
| Modul: | core |
Die Direktive legt den Namen des Autorisierungsbereiches
(Anm.d.Ü.: Der Autorisierungsbereich wird auch Realm genannt.)
für ein Verzeichnis fest. Dieser Realm wird dem Client mitgeteilt,
damit der Anwender weiß, welchen Benutzernamen und welches Passwort
er zu übermitteln hat. AuthName akzeptiert ein
Argument. Falls der Name des Realm Leerzeichen enthält, muss er in
Anführungszeichen eingeschlossen werden. Um zu funktionieren, muss
die Anweisung von den Direktiven AuthType und Require sowie von
Direktiven wie AuthUserFile
und AuthGroupFile
begleitet werden.
Beispiel:
AuthName "Top Secret"
Die AuthName übergebene Zeichenkette ist das,
was in dem von den meisten Browsern angebotenen Passwort-Dialog
angezeigt wird.
| Beschreibung: | Art der Authentisierung |
|---|---|
| Syntax: | AuthType Basic|Digest |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | AuthConfig |
| Status: | Core |
| Modul: | core |
Die Direktive wählt die Art der Benutzer-Authentisierung
für ein Verzeichnis aus. Derzeit sind lediglich Basic
und Digest implementiert.
Um zu funktionieren, muss die Anweisung von den Direktiven AuthName und Require sowie von
Direktiven wie AuthUserFile
und AuthGroupFile
begleitet werden.
| Beschreibung: | Technik zur Bestimmung des Interpreters für CGI-Skripte |
|---|---|
| Syntax: | CGIMapExtension CGI-Pfad .Endung |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | ausschließlich NetWare |
Die Direktive wird zur Steuerung verwendet, wie Apache
den Interpreter ermittelt, der zur Ausführung von
CGI-Skripten verwendet wird. Beispielsweise bestimmt die Angabe
von CGIMapExtension sys:\foo.nlm .foo, dass
alle CGI-Scripte mit der Endung .foo an den
FOO-Interpreter übergeben werden.
| Beschreibung: | Aktiviert die Generierung von Content-MD5
HTTP-Response-Headern |
|---|---|
| Syntax: | ContentDigest On|Off |
| Voreinstellung: | ContentDigest Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | Options |
| Status: | Core |
| Modul: | core |
Die Direktive aktiviert die Generierung von
Content-MD5-Headern, wie sie in RFC1864 bzw. RFC2616
definiert sind.
MD5 ist ein Algorithmus zur Berechnung eines "Datenextrakts" (zuweilen "Fingerabdruck" genannt) (Anm.d.Ü.: Der "Datenextrakt" wird im Englischen als "message digest" oder "fingerprint" bezeichnet.) aus beliebig langen Daten. Es gilt als zuverlässig, dass Veränderungen an den Daten sich in Veränderungen des Extrakts wiederspiegeln.
Der Content-MD5-Header bietet eine
End-to-End-Integritätsprüfung (MIC) (Anm.d.Ü.: MIC steht für
"message integrity check".) des Daten-Inhalts. Ein Proxy oder
Client kann diesen Header prüfen, um zufällige Veränderungen
des Entity-Inhalts bei der Übertragung festzustellen.
Beispielheader:
Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
Beachten Sie bitte, dass dies Performanceprobleme auf Ihrem System verursachen kann, da der Extrakt bei jeder Anfrage berechnet wird (der Wert wird nicht zwischengespeichert).
Content-MD5 wird nur für Dokumente gesendet,
die von core bedient werden, nicht jedoch bei
Modulen. SSI-Dokumente, CGI-Skript-Ausgaben und Byte-Range-Antworten
besitzen diesen Header beispielsweise nicht.
| Beschreibung: | MIME-Content-Type, der gesendet wird, wenn der Server den Typ nicht auf andere Weise ermitteln kann. |
|---|---|
| Syntax: | DefaultType MIME-Type |
| Voreinstellung: | DefaultType text/plain |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
Es kann vorkommen, dass der Server ein Dokument ausliefern muss, dessen Typ er nicht mit Hilfe seiner MIME-Type-Zuordnungen bestimmen kann.
Der Server muss den Client über den Content-Type des
Dokumentes informieren. Daher verwendet er im Falle eines
unbekannten Typs die DefaultType-Einstellung.
Zum Beispiel:
DefaultType image/gif
wäre angemessen für ein Verzeichnis, das viele GIF-Bilder
enthält, deren Dateinamen nicht Endung .gif
besitzen.
Beachten Sie bitte, dass die Direktive anders als ForceType lediglich den Standard-MIME-Type
bestimmt. Alle anderen MIME-Type-Definitionen, einschließlich
Dateierweiterungen, die den Medien-Typ anzeigen können,
überschreiben diese Voreinstellung.
| Beschreibung: | Umschließt eine Gruppe von Direktiven, die nur auf das genannte Verzeichnis des Dateisystems und Unterverzeichnisse angewendet werden |
|---|---|
| Syntax: | <Directory Verzeichnispfad>
... </Directory> |
| Kontext: | Serverkonfiguration, Virtual Host |
| Status: | Core |
| Modul: | core |
<Directory> und
</Directory> werden dazu verwendet, eine Gruppe
von Direktiven zusammenzufassen, die nur für das genannte
Verzeichnis und dessen Unterverzeichnisse gelten. Jede Direktive,
die im Verzeichnis-Kontext erlaubt ist, kann verwendet werden.
Verzeichnispfad ist entweder der vollständige Pfad zu
einem Verzeichnis oder eine Zeichenkette mit Platzhaltern wie sie von der
Unix-Shell zum Abgleich verwendet werden. In einer Zeichenkette
mit Platzhaltern (Anm.d.Ü.: sogenannte wild-cards) entspricht
? einem einzelnen Zeichen und * einer
Zeichenkette beliebiger Länge. Sie können auch auch
[]-Zeichenbereiche verwenden. Keiner der Platzhalter
entspricht dem Zeichen "/". Daher passt <Directory
/*/public_html> nicht auf /home/user/public_html,
<Directory /home/*/public_html> jedoch tut es.
Beispiel:
<Directory /usr/local/httpd/htdocs>
Options Indexes FollowSymLinks
</Directory>
Seien Sie vorsichtig mit den Verzeichnispfad-Argumenten. Sie müssen buchstäblich mit dem Dateisystempfad übereinstimmen, den der Apache für den Zugriff auf die Dateien verwendet. Direktiven, die für ein bestimmtes Verzeichnis gelten, gelten nicht für Dateien in dem Verzeichnis, auf die über einen anderen Pfad zugegriffen wird, wie z.B. über verschiedene symbolische Links.
Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt
wird. Beispielsweise würde
<Directory ~ "^/www/.*/[0-9]{3}">
auf Verzeichnisse in /www/ passen, die aus drei
Zahlen bestehen.
Wenn mehrere <Directory>-Abschnitte
(ohne reguläre Ausdrücke) auf ein Verzeichnis (oder
ein ihm übergeordnetes Verzeichnis) passen, welches ein Dokument
enthält, dann werden die Direktiven der Reihe nach, angefangen
beim kürzesten passenden Muster, vermischt mit den Direktiven
aus den .htaccess-Dateien, angewendet.
Beispiel:
<Directory />
AllowOverride None
</Directory>
<Directory /home/>
AllowOverride FileInfo
</Directory>
Beim Zugriff auf das Dokument /home/web/dir/doc.html
sind die einzelnen Schritte:
AllowOverride None an
(deaktiviere .htaccess-Dateien).AllowOverride FileInfo
(auf das Verzeichnis /home) an.FileInfo-Direktive aus
/home/.htaccess, /home/web/.htaccess und
/home/web/dir/.htaccess der Reihe nach an.Reguläre Ausdrücke werden solange nicht berücksichtigt, bis alle normalen Abschnitte angewendet wurden. Anschließend werden alle regulären Ausdrücke in der Reihenfolge geprüft, in der sie in der Konfigurationsdatei auftauchen. Beispielsweise wird bei
<Directory ~ abc$>
# ... hier die Direktiven ...
</Directory>
der Abschnitt mit dem regulären Ausdruck nicht
berücksichtigt, bis alle normalen
<Directory>-Abschnitte und
.htaccess-Dateien angewendet wurden. Dann erst wird
der reguläre Ausdruck mit /home/abc/public_html/abc
abgeglichen und der entsprechende <Directory>-Abschnitt angewendet.
Beachten Sie bitte, dass der vom Apache voreingestellte
Zugriff für <Directory />
Allow from All ist. Das bedeutet, dass der Apache
jede Datei ausliefert, die durch eine URL abgebildet wird. Es wird
empfohlen, dass Sie dies durch einen Block wie
<Directory />
Order Deny,Allow
Deny from All
</Directory>
ändern und anschließend für Verzeichnisse überschreiben, die Sie verfügbar machen wollen. Für weitere Einzelheiten lesen Sie bitte die Seite zu den Sicherheitshinweisen.
Die Verzeichnisabschnitte erscheinen in der Datei
apache2.conf. <Directory>-Direktiven dürfen nicht
ineinander verschachtelt werden oder innerhalb von <Limit>- oder <LimitExcept>-Abschnitten auftauchen.
| Beschreibung: | Umschließt eine Gruppe von Direktiven, die auf Verzeichnisse des Dateisystems und ihre Unterverzeichnisse abgebildet werden, welche auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <DirectoryMatch regex>
... </DirectoryMatch> |
| Kontext: | Serverkonfiguration, Virtual Host |
| Status: | Core |
| Modul: | core |
<DirectoryMatch> und
</DirectoryMatch> werden dazu verwendet, eine
Gruppe von Direktiven zusammenzufassen, die nur für das
genannte Verzeichnis und dessen Unterverzeichnisse gelten, genauso
wie bei <Directory>.
Als Argument dient jedoch ein regulärer Ausdruck.
Beispielsweise würde
<DirectoryMatch "^/www/.*/[0-9]{3}">
auf Verzeichnisse in /www/ passen, die aus drei
Zeichen bestehen.
<Directory>
für eine Beschreibung, wie reguläre Ausdrücke mit
normalen <Directory>-Anweisungen
vermischt werden.| Beschreibung: | Verzeichnis, welches den Haupt-Dokumentenbaum bildet, der im Web sichtbar ist. |
|---|---|
| Syntax: | DocumentRoot Verzeichnis |
| Voreinstellung: | DocumentRoot /usr/local/apache/htdocs |
| Kontext: | Serverkonfiguration, Virtual Host |
| Status: | Core |
| Modul: | core |
Die Direktive setzt das Verzeichnis, von dem aus
httpd Dateien ausliefert. Sofern nicht eine Direktive
wie Alias greift, hängt
der Server Pfade aus der angeforderten URL an das Wurzelverzeichnis
an, um den Pfad zum Dokument zu bilden. Beispiel:
DocumentRoot /usr/web
Damit bezieht sich ein Zugriff auf
http://www.my.host.com/index.html auf
/usr/web/index.html. Wenn das Verzeichnis nicht
absolut angegeben ist, wird es relativ zu ServerRoot betrachtet.
DocumentRoot sollte ohne einen
Schrägstrich am Ende angegeben werden.
| Beschreibung: | Verwende Memory-Mapping, um Dateien während der Auslieferung zu lesen |
|---|---|
| Syntax: | EnableMMAP On|Off |
| Voreinstellung: | EnableMMAP On |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
Die Direktive steuert, ob httpd Memory-Mapping
verwenden darf, wenn er während der Auslieferung den Inhalt einer
Datei lesen muss. Wenn die Bearbeitung einer Anfrage es erfordert,
auf die Daten in einer Datei zuzugreifen -- zum Beispiel bei der
Auslieferung einer mittels mod_include serverseitig
analysierten Datei --, dann verwendet der Apache standardmäßig
Memory-Mapping für diese Datei, sofern das Betriebssystem es
unterstützt.
Memory-Mapping bedeutet zuweilen eine Performanceverbesserung. In einigen Umgebungen ist es jedoch besser, Memory-Mapping zu deaktivieren, um Problemen während des Betriebs vorzubeugen:
httpd reduzieren.DocumentRoot kann httpd mit
einem Speicherzugriffsfehler (Anm.d.Ü.: ein so genannter "segmentation
fault") abstürzen, wenn eine Datei gelöscht oder
gekürzt wird, während httpd sie im Speicher
abbildet.Bei Serverkonfigurationen, die für dieses Problem anfällig sind, sollten Sie das Memory-Mapping für auszuliefernde Dateien deaktivieren, indem Sie schreiben:
EnableMMAP Off
Bei per NFS eingebundenen Dateien kann diese Funktion explizit für die störenden Dateien deaktiviert werden, indem Sie angeben:
<Directory "/pfad-zu-den-nfs-dateien">
EnableMMAP Off
</Directory>
| Beschreibung: | Verwende die sendfile-Unterstützung des Kernels, um Dateien an den Client auszuliefern |
|---|---|
| Syntax: | EnableSendfile On|Off |
| Voreinstellung: | EnableSendfile On |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Verfügbar ab Apache Version 2.0.44 |
Die Direktive steuert, ob httpd die
sendfile-Unterstützung des Kernels verwenden kann, um
Dateiinhalte an den Client zu übermitteln. Wenn die Bearbeitung
einer Anfrage keinen Zugriff auf die Daten in der Datei erfordert --
zum Beispiel bei der Auslieferung einer statischen Datei -- und das
Betriebssystem es unterstützt, verwendet der Apache
standardmäßig sendfile, um den Dateiinhalt zu
übertragen, ohne die Datei jemals zu lesen.
Der sendfile-Mechanismus vermeidet getrennte Lese- und Sendeoperationen sowie Puffer-Zuweisungen. Bei einigen Plattformen bzw. Dateisystemen deaktivieren Sie diese Funktion jedoch besser, um Probleme während des Betriebs zu vermeiden:
DocumentRoot (z.B. NFS oder SMB) ist der
Kernel möglicherweise nicht in der Lage, die Netzwerkdatei
über seinen eigenen Cache zu bedienen.sendfile
in Verbindung mit bestimmten Netzwerkkarten und IPv6
TCP-Checksummenfehler aus.Bei Serverkonfigurationen, die für dieses Problam anfällig sind, sollten die diese Funktion deaktivieren, indem Sie schreiben:
EnableSendfile Off
Bei per NFS oder SMB eingebundenen Dateien kann diese Funktion explizit für die störenden Dateien deaktiviert werden, indem Sie angeben:
<Directory "/pfad-zu-den-nfs-dateien">
EnableSendfile Off
</Directory>
Beachten Sie bitte, dass die verzeichnisbasierte und
.htaccess-Konfiguration von EnableSendfile
nicht vom mod_disk_cache-Modul unterstützt wird.
Nur die globale Konfiguration von EnableSendfile
wird vom Modul beachtet.
| Beschreibung: | Das, was der Server im Fehlerfall an den Client zurückgibt |
|---|---|
| Syntax: | ErrorDocument Fehlercode Dokument |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Die Syntax der Anführungszeichen bei Textnachrichten hat sich im Apache 2.0 geändert |
Im Falle eines Problems oder Fehlers kann der Apache konfiguriert werden, eine der vier Aktionen auszuführen:
Die erste Option ist Voreinstellung, während die Optionen
2 bis 4 über die Direktive ErrorDocument
eingestellt werden, welcher der HTTP-Statuscode und eine
URL oder Nachricht folgen. Abhängig vom Problem bzw. Fehler bietet
der Apache manchmal zusätzliche Informationen an.
URLs können bei lokalen Webpfaden mit einem Schrägstrich
(/) beginnen (relativ zum DocumentRoot-Verzeichnis) oder eine vollständige URL
bilden, die der Client auflösen kann. Alternativ kann eine
Nachricht für die Anzeige im Browser angeboten werden. Beispiel:
ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/falsche_urls.pl
ErrorDocument 401 /info_zur_anmeldung.html
ErrorDocument 403 "Der Zugriff ist nicht erlaubt."
Außerdem kann der spezielle Wert default angegeben
werden, um die schlichte, hartkodierte Nachricht des Apache zu verwenden.
Es wird normalerweise nicht benötigt, doch default
stellt die einfach, im Apache hartkodierte Meldung in Konfigurationen
wieder her, die ansonsten von einem existierenden (Anm.d.Ü.: zuvor
konfigurierten) ErrorDocument erben
würden.
ErrorDocument 404 /cgi-bin/bad_urls.pl
<Directory /web/docs>
ErrorDocument 404 default
</Directory>
Wenn Sie eine ErrorDocument-Anweisung
angeben, die auf eine entfernte URL weist (d.h. irgendetwas mit der
Methode http davor), beachten Sie bitte, dass der Apache
eine Umleitung zum Client sendet, um diesem mitzuteilen, wo das
Dokument zu finden ist, auch wenn das Dokument letztlich wieder zum
gleichen Server führt. Das hat mehrere Auswirkungen. Die
wichtigste ist, dass der Client nicht den Original-Statuscode
erhält sondern statt dessen einen Umleitungs-Statuscode. Dies
wiederum kann Web-Robots und andere Clients verwirren, die den
Statuscode dazu verwenden, herauszufinden ob eine URL gültig ist.
Wenn Sie eine entfernte URL in einer Anweisung
ErrorDocument 401 verwenden, wird der Client
darüber hinaus nicht wissen, dass er den Benutzer zur Eingabe
eines Passwortes auffordern muss, da er den Statuscode 401 nicht
erhält. Deshalb müssen Sie sich auf ein lokales
Dokument beziehen, wenn Sie eine Anweisung ErrorDocument
401 verwenden.
Der Microsoft Internet Explorer (MSIE) ignoriert standardmäßig serverseitig generierte Fehlermeldungen, wenn sie "zu kurz" sind und ersetzt sie durch eigene "freundliche" Fehlermeldungen. Die Größe variiert abhängig von der Art des Fehlers, im Allgemeinen zeigt der MSIE jedoch den serverseitig generierten Fehler, anstatt ihn zu verstecken, wenn Ihr Fehlerdokument größer als 512 Bytes ist. Weitere Informationen sind im Artikel Q294807 in der Microsoft Knowledgebase verfügbar.
Obwohl die meisten Fehlermeldungen überschrieben werden
können, werden unter bestimmten Umständen die internen
Meldungen ungeachtet der Einstellung der ErrorDocument-Direktive verwendet. Insbesondere bei
einer fehlerhaften Anfrage werden der normale Bearbeitungsprozess sofort
beendet und die interne Meldung zurückgegeben. Das ist notwendig, um
Sicherheitsprobleme zu vermeiden, die auf Grund fehlerhafter Anfragen
entstehen.
In Versionen vor 2.0 wurden Meldungen durch ein einzelnes vorangestelltes Anführungszeichen (") erkannt.
| Beschreibung: | Ablageort, an dem der Server Fehler protokolliert |
|---|---|
| Syntax: | ErrorLog Dateiname|syslog[:facility] |
| Voreinstellung: | ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and
OS/2) |
| Kontext: | Serverkonfiguration, Virtual Host |
| Status: | Core |
| Modul: | core |
Die Direktive ErrorLog bestimmt den Namen
der Datei, in welcher der Server alle auftretenden Fehler protokolliert.
Wenn Dateiname nicht absolut ist, wird er relativ zu ServerRoot betrachtet.
ErrorLog /var/log/httpd/error_log
Wenn der Dateiname mit einem senkrechten Strich (|, engl.: Pipe) beginnt, wird angenommen, dass es sich um einen Befehl handelt, der ausgeführt wird, um das Fehlerprotokolls zu verarbeiten.
ErrorLog "|/usr/local/bin/httpd_errors"
Die Verwendung von syslog anstelle eines Dateinamens
aktiviert die Protokollierung mittels syslogd(8), sofern das System
es unterstützt. Als Voreinstellung wird der syslog-Typ (syslog
facility) local7 verwendet, Sie können dies jedoch
auch überschreiben, indem Sie die Syntax
syslog:facility verwenden, wobei
facility einer der Namen sein kann, die üblicherweise
in syslog(1) dokumentiert sind.
ErrorLog syslog:user
SICHERHEITSHINWEIS: Lesen Sie das Dokument Sicherheitshinweise zu Einzelheiten darüber, warum Ihre Sicherheit gefährdet sein kann, wenn das Verzeichnis, in dem die Log-Dateien gespeichert werden, für jemand anderen, als den Benutzer, der den Server gestartet hat, beschreibbar ist.
Bei der Eingabe eines Dateipfads auf nicht-Unix-Plattformen sollte darauf geachtet werden, nur (Vorwärts-)Schrägstriche zu verwenden, auch wenn die Plattform rückwärts gerichtete Schrägstriche (Backslashes) erlaubt. Im Allgemeinen ist es eine gute Idee, innerhalb der Konfigurationsdateien immer Vorwärts-Schrägstriche zu verwenden.
| Beschreibung: | Dateiattribute, die zur Erstellung des HTTP-Response-Headers ETag verwendet werden |
|---|---|
| Syntax: | FileETag Komponente ... |
| Voreinstellung: | FileETag INode MTime Size |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
Wenn dem Dokument eine Datei zugrundeliegt, bestimmt die Direktive
FileETag die Dateiattribute, die zur Erstellung
des HTTP-Response-Headers ETag (Entity-Tag) verwendet
werden. (Der Wert von ETag wird bei der Cache-Verwaltung
zur Einsparung von Netzwerk-Bandbreite benutzt.) Im Apache 1.3.22 und
früher wurde der ETag-Wert stets aus
der I-Node, der Größe und dem Datum der letzten
Änderung (mtime) der Datei gebildet. Die Direktive
FileETag erlaubt es Ihnen, zu bestimmen,
welche dieser Eigenschaften -- falls überhaupt -- verwendet
werden sollen. Die gültigen Schlüsselworte lauten:
FileETag INode MTime Size
ETag-Angabe in die Antwort eingefügt,
wenn dem Dokument eine Datei zugrundeliegt.Den Schlüsselwörtern INode, MTime
und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
| Beschreibung: | Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type |
|---|---|
| Syntax: | ForceType MIME-Type|None |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Wurde im Apache 2.0 in den Core verschoben |
Wenn sie innerhalb einer .htaccess-Datei, eines
<Directory>-,
<Location>-
<Files>-Containers
angegeben wird, erzwingt die Direktive die Auslieferung aller
entsprechenden Dateien mit dem Content-Type, der durch
MIME-Type definiert wurde. Wenn Sie zum Beispiel ein
Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch
.gif kennzeichnen wollen, können Sie angeben:
ForceType image/gif
Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen
überschreibt, einschließlich Dateiendungen, die einen
Medientyp bezeichnen könnten.
Sie können jede ForceType-Angabe
durch die Verwendung des Wertes None überschreiben:
# erzwinge image/gif für alle Dateien:
<Location /images>
ForceType image/gif
</Location>
# hier jedoch normale MIME-Type-Zuordnungen:
<Location /images/mixed>
ForceType None
</Location>
| Beschreibung: | Aktiviert DNS-Lookups auf Client-IP-Adressen |
|---|---|
| Syntax: | HostnameLookups On|Off|Double |
| Voreinstellung: | HostnameLookups Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis |
| Status: | Core |
| Modul: | core |
Diese Direktive aktiviert die DNS-Abfrage (Anm.d.Ü.: ein sogenannter
DNS-Lookup), so dass Hostnamen protokolliert (und in
REMOTE_HOST an CGIs/SSIs übergeben) werden könnnen.
Der Wert Double bezieht sich auf ein
Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup
durchgeführt wurde, wird dann auf dem Ergebnis ein
Forward-Lookup ausgeführt. Wenigstens eine der IP-Adressen
aus dem Forward-Lookup muss der Originaladresse entsprechen.
(In der "tcpwrappers"-Terminologie wird dies PARANOID
genannt.)
Unabhängig von der Einstellung wird ein Double-Reverse-Lookup
durchgeführt, wenn mod_authz_host zur
Zugriffskontrolle per Hostnamen eingesetzt wird. Dies ist aus
Sicherheitsgründen notwendig. Beachten Sie, dass das Ergebnis dieses
Double-Reverse-Lookups nicht generell verfügbar ist, solange Sie
nicht HostnameLookups Double setzen. Wenn beispielsweise
nur HostnameLookups On angegeben ist und eine Anfrage
für ein Objekt erfolgt, welches durch Hostnamen-Beschränkungen
geschützt ist, dann wird CGIs nur das Ergebnis des
Singel-Reverse-Lookups in REMOTE_HOST übergeben,
egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.
Die Voreinstellung ist Off, um Netzwerktraffic bei den
Angeboten einzusparen, die nicht tatsächlich Reverse-Lookups
benötigen. Es ist auch für die Endanwender besser, da sie nicht
die zusätzliche Wartezeit ertragen müssen, die ein Lookup mit
sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf
Offlassen. Das Hilfsprogramm logresolve, das standardmäßig in das
Unterverzeichnis bin Ihres Installationsverzeichnisses
kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von
protokollierten IP-Adressen nachzuschlagen.
| Beschreibung: | Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist |
|---|---|
| Syntax: | <IfDefine [!]Parametername> ...
</IfDefine> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Der Container <IfDefine Test>...</IfDefine>
wird dazu verwendet, Direktiven als bedingt zu kennzeichnen.
Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgeführt,
wenn Test wahr ist. Ist Test falsch, wird alles
zwischen der Start- und Endemarkierung ignoriert.
In der <IfDefine>-Anweisung kann
Test eine von zwei Formen annehmen:
!ParameternameIm ersten Fall werden die Direktiven zwischen der Start- und Endemarkierung nur ausgeführt, wenn der Parameter namens Parametername definiert ist. Die zweite Form kehrt den Test um und führt die Direktiven nur dann aus, wenn Parametername nicht definiert ist.
Das Argument Parametername ist ein sogenanntes
"Define", das beim beim Start des Servers in der
httpd-Befehlszeile durch
-DParameter angegeben wird.
<IfDefine>-Container können
ineinander verschachtelt werden, um einfache Multi-Parameter-Tests
zu implementieren. Beispiel:
httpd -DReverseProxy ...
# apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
| Beschreibung: | Schließt Direktiven ein, die abhängig vom Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden |
|---|---|
| Syntax: | <IfModule [!]Modulname|Modulbezeichner>
... </IfModule> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Modulbezeichner sind ab Version 2.1 verfügbar. |
Der Container <IfModule
Test>...</IfModule> wird dazu verwendet,
Direktiven als abhängig von dem Vorhandensein eines speziellen
Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur
ausgeführt, wenn Test wahr ist. Ist Test
falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.
In der <IfModule>-Anweisung
kann Test eine von zwei Formen annehmen:
! und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
| Beschreibung: | Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type |
|---|---|
| Syntax: | ForceType MIME-Type|None |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Wurde im Apache 2.0 in den Core verschoben |
Wenn sie innerhalb einer .htaccess-Datei, eines
<Directory>-,
<Location>-
<Files>-Containers
angegeben wird, erzwingt die Direktive die Auslieferung aller
entsprechenden Dateien mit dem Content-Type, der durch
MIME-Type definiert wurde. Wenn Sie zum Beispiel ein
Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch
.gif kennzeichnen wollen, können Sie angeben:
ForceType image/gif
Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen
überschreibt, einschließlich Dateiendungen, die einen
Medientyp bezeichnen könnten.
Sie können jede ForceType-Angabe
durch die Verwendung des Wertes None überschreiben:
# erzwinge image/gif für alle Dateien:
<Location /images>
ForceType image/gif
</Location>
# hier jedoch normale MIME-Type-Zuordnungen:
<Location /images/mixed>
ForceType None
</Location>
| Beschreibung: | Aktiviert DNS-Lookups auf Client-IP-Adressen |
|---|---|
| Syntax: | HostnameLookups On|Off|Double |
| Voreinstellung: | HostnameLookups Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis |
| Status: | Core |
| Modul: | core |
Diese Direktive aktiviert die DNS-Abfrage (Anm.d.Ü.: ein sogenannter
DNS-Lookup), so dass Hostnamen protokolliert (und in
REMOTE_HOST an CGIs/SSIs übergeben) werden könnnen.
Der Wert Double bezieht sich auf ein
Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup
durchgeführt wurde, wird dann auf dem Ergebnis ein
Forward-Lookup ausgeführt. Wenigstens eine der IP-Adressen
aus dem Forward-Lookup muss der Originaladresse entsprechen.
(In der "tcpwrappers"-Terminologie wird dies PARANOID
genannt.)
Unabhängig von der Einstellung wird ein Double-Reverse-Lookup
durchgeführt, wenn mod_authz_host zur
Zugriffskontrolle per Hostnamen eingesetzt wird. Dies ist aus
Sicherheitsgründen notwendig. Beachten Sie, dass das Ergebnis dieses
Double-Reverse-Lookups nicht generell verfügbar ist, solange Sie
nicht HostnameLookups Double setzen. Wenn beispielsweise
nur HostnameLookups On angegeben ist und eine Anfrage
für ein Objekt erfolgt, welches durch Hostnamen-Beschränkungen
geschützt ist, dann wird CGIs nur das Ergebnis des
Singel-Reverse-Lookups in REMOTE_HOST übergeben,
egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.
Die Voreinstellung ist Off, um Netzwerktraffic bei den
Angeboten einzusparen, die nicht tatsächlich Reverse-Lookups
benötigen. Es ist auch für die Endanwender besser, da sie nicht
die zusätzliche Wartezeit ertragen müssen, die ein Lookup mit
sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf
Offlassen. Das Hilfsprogramm logresolve, das standardmäßig in das
Unterverzeichnis bin Ihres Installationsverzeichnisses
kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von
protokollierten IP-Adressen nachzuschlagen.
| Beschreibung: | Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist |
|---|---|
| Syntax: | <IfDefine [!]Parametername> ...
</IfDefine> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Der Container <IfDefine Test>...</IfDefine>
wird dazu verwendet, Direktiven als bedingt zu kennzeichnen.
Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgeführt,
wenn Test wahr ist. Ist Test falsch, wird alles
zwischen der Start- und Endemarkierung ignoriert.
In der <IfDefine>-Anweisung kann
Test eine von zwei Formen annehmen:
!ParameternameIm ersten Fall werden die Direktiven zwischen der Start- und Endemarkierung nur ausgeführt, wenn der Parameter namens Parametername definiert ist. Die zweite Form kehrt den Test um und führt die Direktiven nur dann aus, wenn Parametername nicht definiert ist.
Das Argument Parametername ist ein sogenanntes
"Define", das beim beim Start des Servers in der
httpd-Befehlszeile durch
-DParameter angegeben wird.
<IfDefine>-Container können
ineinander verschachtelt werden, um einfache Multi-Parameter-Tests
zu implementieren. Beispiel:
httpd -DReverseProxy ...
# apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
| Beschreibung: | Schließt Direktiven ein, die abhängig vom Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden |
|---|---|
| Syntax: | <IfModule [!]Modulname|Modulbezeichner>
... </IfModule> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Modulbezeichner sind ab Version 2.1 verfügbar. |
Der Container <IfModule
Test>...</IfModule> wird dazu verwendet,
Direktiven als abhängig von dem Vorhandensein eines speziellen
Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur
ausgeführt, wenn Test wahr ist. Ist Test
falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.
In der <IfModule>-Anweisung
kann Test eine von zwei Formen annehmen:
! und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
| Beschreibung: | Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type |
|---|---|
| Syntax: | ForceType MIME-Type|None |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Wurde im Apache 2.0 in den Core verschoben |
Wenn sie innerhalb einer .htaccess-Datei, eines
<Directory>-,
<Location>-
<Files>-Containers
angegeben wird, erzwingt die Direktive die Auslieferung aller
entsprechenden Dateien mit dem Content-Type, der durch
MIME-Type definiert wurde. Wenn Sie zum Beispiel ein
Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch
.gif kennzeichnen wollen, können Sie angeben:
ForceType image/gif
Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen
überschreibt, einschließlich Dateiendungen, die einen
Medientyp bezeichnen könnten.
Sie können jede ForceType-Angabe
durch die Verwendung des Wertes None überschreiben:
# erzwinge image/gif für alle Dateien:
<Location /images>
ForceType image/gif
</Location>
# hier jedoch normale MIME-Type-Zuordnungen:
<Location /images/mixed>
ForceType None
</Location>
| Beschreibung: | Aktiviert DNS-Lookups auf Client-IP-Adressen |
|---|---|
| Syntax: | HostnameLookups On|Off|Double |
| Voreinstellung: | HostnameLookups Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis |
| Status: | Core |
| Modul: | core |
Diese Direktive aktiviert die DNS-Abfrage (Anm.d.Ü.: ein sogenannter
DNS-Lookup), so dass Hostnamen protokolliert (und in
REMOTE_HOST an CGIs/SSIs übergeben) werden könnnen.
Der Wert Double bezieht sich auf ein
Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup
durchgeführt wurde, wird dann auf dem Ergebnis ein
Forward-Lookup ausgeführt. Wenigstens eine der IP-Adressen
aus dem Forward-Lookup muss der Originaladresse entsprechen.
(In der "tcpwrappers"-Terminologie wird dies PARANOID
genannt.)
Unabhängig von der Einstellung wird ein Double-Reverse-Lookup
durchgeführt, wenn mod_authz_host zur
Zugriffskontrolle per Hostnamen eingesetzt wird. Dies ist aus
Sicherheitsgründen notwendig. Beachten Sie, dass das Ergebnis dieses
Double-Reverse-Lookups nicht generell verfügbar ist, solange Sie
nicht HostnameLookups Double setzen. Wenn beispielsweise
nur HostnameLookups On angegeben ist und eine Anfrage
für ein Objekt erfolgt, welches durch Hostnamen-Beschränkungen
geschützt ist, dann wird CGIs nur das Ergebnis des
Singel-Reverse-Lookups in REMOTE_HOST übergeben,
egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.
Die Voreinstellung ist Off, um Netzwerktraffic bei den
Angeboten einzusparen, die nicht tatsächlich Reverse-Lookups
benötigen. Es ist auch für die Endanwender besser, da sie nicht
die zusätzliche Wartezeit ertragen müssen, die ein Lookup mit
sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf
Offlassen. Das Hilfsprogramm logresolve, das standardmäßig in das
Unterverzeichnis bin Ihres Installationsverzeichnisses
kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von
protokollierten IP-Adressen nachzuschlagen.
| Beschreibung: | Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist |
|---|---|
| Syntax: | <IfDefine [!]Parametername> ...
</IfDefine> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Der Container <IfDefine Test>...</IfDefine>
wird dazu verwendet, Direktiven als bedingt zu kennzeichnen.
Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgeführt,
wenn Test wahr ist. Ist Test falsch, wird alles
zwischen der Start- und Endemarkierung ignoriert.
In der <IfDefine>-Anweisung kann
Test eine von zwei Formen annehmen:
!ParameternameIm ersten Fall werden die Direktiven zwischen der Start- und Endemarkierung nur ausgeführt, wenn der Parameter namens Parametername definiert ist. Die zweite Form kehrt den Test um und führt die Direktiven nur dann aus, wenn Parametername nicht definiert ist.
Das Argument Parametername ist ein sogenanntes
"Define", das beim beim Start des Servers in der
httpd-Befehlszeile durch
-DParameter angegeben wird.
<IfDefine>-Container können
ineinander verschachtelt werden, um einfache Multi-Parameter-Tests
zu implementieren. Beispiel:
httpd -DReverseProxy ...
# apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
| Beschreibung: | Schließt Direktiven ein, die abhängig vom Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden |
|---|---|
| Syntax: | <IfModule [!]Modulname|Modulbezeichner>
... </IfModule> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Modulbezeichner sind ab Version 2.1 verfügbar. |
Der Container <IfModule
Test>...</IfModule> wird dazu verwendet,
Direktiven als abhängig von dem Vorhandensein eines speziellen
Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur
ausgeführt, wenn Test wahr ist. Ist Test
falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.
In der <IfModule>-Anweisung
kann Test eine von zwei Formen annehmen:
! und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
| Beschreibung: | Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type |
|---|---|
| Syntax: | ForceType MIME-Type|None |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Wurde im Apache 2.0 in den Core verschoben |
Wenn sie innerhalb einer .htaccess-Datei, eines
<Directory>-,
<Location>-
<Files>-Containers
angegeben wird, erzwingt die Direktive die Auslieferung aller
entsprechenden Dateien mit dem Content-Type, der durch
MIME-Type definiert wurde. Wenn Sie zum Beispiel ein
Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch
.gif kennzeichnen wollen, können Sie angeben:
ForceType image/gif
Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen
überschreibt, einschließlich Dateiendungen, die einen
Medientyp bezeichnen könnten.
Sie können jede ForceType-Angabe
durch die Verwendung des Wertes None überschreiben:
# erzwinge image/gif für alle Dateien:
<Location /images>
ForceType image/gif
</Location>
# hier jedoch normale MIME-Type-Zuordnungen:
<Location /images/mixed>
ForceType None
</Location>
| Beschreibung: | Aktiviert DNS-Lookups auf Client-IP-Adressen |
|---|---|
| Syntax: | HostnameLookups On|Off|Double |
| Voreinstellung: | HostnameLookups Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis |
| Status: | Core |
| Modul: | core |
Diese Direktive aktiviert die DNS-Abfrage (Anm.d.Ü.: ein sogenannter
DNS-Lookup), so dass Hostnamen protokolliert (und in
REMOTE_HOST an CGIs/SSIs übergeben) werden könnnen.
Der Wert Double bezieht sich auf ein
Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup
durchgeführt wurde, wird dann auf dem Ergebnis ein
Forward-Lookup ausgeführt. Wenigstens eine der IP-Adressen
aus dem Forward-Lookup muss der Originaladresse entsprechen.
(In der "tcpwrappers"-Terminologie wird dies PARANOID
genannt.)
Unabhängig von der Einstellung wird ein Double-Reverse-Lookup
durchgeführt, wenn mod_authz_host zur
Zugriffskontrolle per Hostnamen eingesetzt wird. Dies ist aus
Sicherheitsgründen notwendig. Beachten Sie, dass das Ergebnis dieses
Double-Reverse-Lookups nicht generell verfügbar ist, solange Sie
nicht HostnameLookups Double setzen. Wenn beispielsweise
nur HostnameLookups On angegeben ist und eine Anfrage
für ein Objekt erfolgt, welches durch Hostnamen-Beschränkungen
geschützt ist, dann wird CGIs nur das Ergebnis des
Singel-Reverse-Lookups in REMOTE_HOST übergeben,
egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.
Die Voreinstellung ist Off, um Netzwerktraffic bei den
Angeboten einzusparen, die nicht tatsächlich Reverse-Lookups
benötigen. Es ist auch für die Endanwender besser, da sie nicht
die zusätzliche Wartezeit ertragen müssen, die ein Lookup mit
sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf
Offlassen. Das Hilfsprogramm logresolve, das standardmäßig in das
Unterverzeichnis bin Ihres Installationsverzeichnisses
kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von
protokollierten IP-Adressen nachzuschlagen.
| Beschreibung: | Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist |
|---|---|
| Syntax: | <IfDefine [!]Parametername> ...
</IfDefine> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Der Container <IfDefine Test>...</IfDefine>
wird dazu verwendet, Direktiven als bedingt zu kennzeichnen.
Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgeführt,
wenn Test wahr ist. Ist Test falsch, wird alles
zwischen der Start- und Endemarkierung ignoriert.
In der <IfDefine>-Anweisung kann
Test eine von zwei Formen annehmen:
!ParameternameIm ersten Fall werden die Direktiven zwischen der Start- und Endemarkierung nur ausgeführt, wenn der Parameter namens Parametername definiert ist. Die zweite Form kehrt den Test um und führt die Direktiven nur dann aus, wenn Parametername nicht definiert ist.
Das Argument Parametername ist ein sogenanntes
"Define", das beim beim Start des Servers in der
httpd-Befehlszeile durch
-DParameter angegeben wird.
<IfDefine>-Container können
ineinander verschachtelt werden, um einfache Multi-Parameter-Tests
zu implementieren. Beispiel:
httpd -DReverseProxy ...
# apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
| Beschreibung: | Schließt Direktiven ein, die abhängig vom Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden |
|---|---|
| Syntax: | <IfModule [!]Modulname|Modulbezeichner>
... </IfModule> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Modulbezeichner sind ab Version 2.1 verfügbar. |
Der Container <IfModule
Test>...</IfModule> wird dazu verwendet,
Direktiven als abhängig von dem Vorhandensein eines speziellen
Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur
ausgeführt, wenn Test wahr ist. Ist Test
falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.
In der <IfModule>-Anweisung
kann Test eine von zwei Formen annehmen:
! und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
| Beschreibung: | Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type |
|---|---|
| Syntax: | ForceType MIME-Type|None |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Wurde im Apache 2.0 in den Core verschoben |
Wenn sie innerhalb einer .htaccess-Datei, eines
<Directory>-,
<Location>-
<Files>-Containers
angegeben wird, erzwingt die Direktive die Auslieferung aller
entsprechenden Dateien mit dem Content-Type, der durch
MIME-Type definiert wurde. Wenn Sie zum Beispiel ein
Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch
.gif kennzeichnen wollen, können Sie angeben:
ForceType image/gif
Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen
überschreibt, einschließlich Dateiendungen, die einen
Medientyp bezeichnen könnten.
Sie können jede ForceType-Angabe
durch die Verwendung des Wertes None überschreiben:
# erzwinge image/gif für alle Dateien:
<Location /images>
ForceType image/gif
</Location>
# hier jedoch normale MIME-Type-Zuordnungen:
<Location /images/mixed>
ForceType None
</Location>
| Beschreibung: | Aktiviert DNS-Lookups auf Client-IP-Adressen |
|---|---|
| Syntax: | HostnameLookups On|Off|Double |
| Voreinstellung: | HostnameLookups Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis |
| Status: | Core |
| Modul: | core |
Diese Direktive aktiviert die DNS-Abfrage (Anm.d.Ü.: ein sogenannter
DNS-Lookup), so dass Hostnamen protokolliert (und in
REMOTE_HOST an CGIs/SSIs übergeben) werden könnnen.
Der Wert Double bezieht sich auf ein
Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup
durchgeführt wurde, wird dann auf dem Ergebnis ein
Forward-Lookup ausgeführt. Wenigstens eine der IP-Adressen
aus dem Forward-Lookup muss der Originaladresse entsprechen.
(In der "tcpwrappers"-Terminologie wird dies PARANOID
genannt.)
Unabhängig von der Einstellung wird ein Double-Reverse-Lookup
durchgeführt, wenn mod_authz_host zur
Zugriffskontrolle per Hostnamen eingesetzt wird. Dies ist aus
Sicherheitsgründen notwendig. Beachten Sie, dass das Ergebnis dieses
Double-Reverse-Lookups nicht generell verfügbar ist, solange Sie
nicht HostnameLookups Double setzen. Wenn beispielsweise
nur HostnameLookups On angegeben ist und eine Anfrage
für ein Objekt erfolgt, welches durch Hostnamen-Beschränkungen
geschützt ist, dann wird CGIs nur das Ergebnis des
Singel-Reverse-Lookups in REMOTE_HOST übergeben,
egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.
Die Voreinstellung ist Off, um Netzwerktraffic bei den
Angeboten einzusparen, die nicht tatsächlich Reverse-Lookups
benötigen. Es ist auch für die Endanwender besser, da sie nicht
die zusätzliche Wartezeit ertragen müssen, die ein Lookup mit
sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf
Offlassen. Das Hilfsprogramm logresolve, das standardmäßig in das
Unterverzeichnis bin Ihres Installationsverzeichnisses
kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von
protokollierten IP-Adressen nachzuschlagen.
| Beschreibung: | Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist |
|---|---|
| Syntax: | <IfDefine [!]Parametername> ...
</IfDefine> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Der Container <IfDefine Test>...</IfDefine>
wird dazu verwendet, Direktiven als bedingt zu kennzeichnen.
Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgeführt,
wenn Test wahr ist. Ist Test falsch, wird alles
zwischen der Start- und Endemarkierung ignoriert.
In der <IfDefine>-Anweisung kann
Test eine von zwei Formen annehmen:
!ParameternameIm ersten Fall werden die Direktiven zwischen der Start- und Endemarkierung nur ausgeführt, wenn der Parameter namens Parametername definiert ist. Die zweite Form kehrt den Test um und führt die Direktiven nur dann aus, wenn Parametername nicht definiert ist.
Das Argument Parametername ist ein sogenanntes
"Define", das beim beim Start des Servers in der
httpd-Befehlszeile durch
-DParameter angegeben wird.
<IfDefine>-Container können
ineinander verschachtelt werden, um einfache Multi-Parameter-Tests
zu implementieren. Beispiel:
httpd -DReverseProxy ...
# apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
| Beschreibung: | Schließt Direktiven ein, die abhängig vom Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden |
|---|---|
| Syntax: | <IfModule [!]Modulname|Modulbezeichner>
... </IfModule> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Modulbezeichner sind ab Version 2.1 verfügbar. |
Der Container <IfModule
Test>...</IfModule> wird dazu verwendet,
Direktiven als abhängig von dem Vorhandensein eines speziellen
Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur
ausgeführt, wenn Test wahr ist. Ist Test
falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.
In der <IfModule>-Anweisung
kann Test eine von zwei Formen annehmen:
! und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
| Beschreibung: | Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type |
|---|---|
| Syntax: | ForceType MIME-Type|None |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Wurde im Apache 2.0 in den Core verschoben |
Wenn sie innerhalb einer .htaccess-Datei, eines
<Directory>-,
<Location>-
<Files>-Containers
angegeben wird, erzwingt die Direktive die Auslieferung aller
entsprechenden Dateien mit dem Content-Type, der durch
MIME-Type definiert wurde. Wenn Sie zum Beispiel ein
Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch
.gif kennzeichnen wollen, können Sie angeben:
ForceType image/gif
Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen
überschreibt, einschließlich Dateiendungen, die einen
Medientyp bezeichnen könnten.
Sie können jede ForceType-Angabe
durch die Verwendung des Wertes None überschreiben:
# erzwinge image/gif für alle Dateien:
<Location /images>
ForceType image/gif
</Location>
# hier jedoch normale MIME-Type-Zuordnungen:
<Location /images/mixed>
ForceType None
</Location>
| Beschreibung: | Aktiviert DNS-Lookups auf Client-IP-Adressen |
|---|---|
| Syntax: | HostnameLookups On|Off|Double |
| Voreinstellung: | HostnameLookups Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis |
| Status: | Core |
| Modul: | core |
Diese Direktive aktiviert die DNS-Abfrage (Anm.d.Ü.: ein sogenannter
DNS-Lookup), so dass Hostnamen protokolliert (und in
REMOTE_HOST an CGIs/SSIs übergeben) werden könnnen.
Der Wert Double bezieht sich auf ein
Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup
durchgeführt wurde, wird dann auf dem Ergebnis ein
Forward-Lookup ausgeführt. Wenigstens eine der IP-Adressen
aus dem Forward-Lookup muss der Originaladresse entsprechen.
(In der "tcpwrappers"-Terminologie wird dies PARANOID
genannt.)
Unabhängig von der Einstellung wird ein Double-Reverse-Lookup
durchgeführt, wenn mod_authz_host zur
Zugriffskontrolle per Hostnamen eingesetzt wird. Dies ist aus
Sicherheitsgründen notwendig. Beachten Sie, dass das Ergebnis dieses
Double-Reverse-Lookups nicht generell verfügbar ist, solange Sie
nicht HostnameLookups Double setzen. Wenn beispielsweise
nur HostnameLookups On angegeben ist und eine Anfrage
für ein Objekt erfolgt, welches durch Hostnamen-Beschränkungen
geschützt ist, dann wird CGIs nur das Ergebnis des
Singel-Reverse-Lookups in REMOTE_HOST übergeben,
egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.
Die Voreinstellung ist Off, um Netzwerktraffic bei den
Angeboten einzusparen, die nicht tatsächlich Reverse-Lookups
benötigen. Es ist auch für die Endanwender besser, da sie nicht
die zusätzliche Wartezeit ertragen müssen, die ein Lookup mit
sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf
Offlassen. Das Hilfsprogramm logresolve, das standardmäßig in das
Unterverzeichnis bin Ihres Installationsverzeichnisses
kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von
protokollierten IP-Adressen nachzuschlagen.
| Beschreibung: | Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist |
|---|---|
| Syntax: | <IfDefine [!]Parametername> ...
</IfDefine> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Der Container <IfDefine Test>...</IfDefine>
wird dazu verwendet, Direktiven als bedingt zu kennzeichnen.
Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgeführt,
wenn Test wahr ist. Ist Test falsch, wird alles
zwischen der Start- und Endemarkierung ignoriert.
In der <IfDefine>-Anweisung kann
Test eine von zwei Formen annehmen:
!ParameternameIm ersten Fall werden die Direktiven zwischen der Start- und Endemarkierung nur ausgeführt, wenn der Parameter namens Parametername definiert ist. Die zweite Form kehrt den Test um und führt die Direktiven nur dann aus, wenn Parametername nicht definiert ist.
Das Argument Parametername ist ein sogenanntes
"Define", das beim beim Start des Servers in der
httpd-Befehlszeile durch
-DParameter angegeben wird.
<IfDefine>-Container können
ineinander verschachtelt werden, um einfache Multi-Parameter-Tests
zu implementieren. Beispiel:
httpd -DReverseProxy ...
# apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
| Beschreibung: | Schließt Direktiven ein, die abhängig vom Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden |
|---|---|
| Syntax: | <IfModule [!]Modulname|Modulbezeichner>
... </IfModule> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Modulbezeichner sind ab Version 2.1 verfügbar. |
Der Container <IfModule
Test>...</IfModule> wird dazu verwendet,
Direktiven als abhängig von dem Vorhandensein eines speziellen
Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur
ausgeführt, wenn Test wahr ist. Ist Test
falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.
In der <IfModule>-Anweisung
kann Test eine von zwei Formen annehmen:
! und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
| Beschreibung: | Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type |
|---|---|
| Syntax: | ForceType MIME-Type|None |
| Kontext: | Verzeichnis, .htaccess |
| AllowOverride: | FileInfo |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Wurde im Apache 2.0 in den Core verschoben |
Wenn sie innerhalb einer .htaccess-Datei, eines
<Directory>-,
<Location>-
<Files>-Containers
angegeben wird, erzwingt die Direktive die Auslieferung aller
entsprechenden Dateien mit dem Content-Type, der durch
MIME-Type definiert wurde. Wenn Sie zum Beispiel ein
Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch
.gif kennzeichnen wollen, können Sie angeben:
ForceType image/gif
Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen
überschreibt, einschließlich Dateiendungen, die einen
Medientyp bezeichnen könnten.
Sie können jede ForceType-Angabe
durch die Verwendung des Wertes None überschreiben:
# erzwinge image/gif für alle Dateien:
<Location /images>
ForceType image/gif
</Location>
# hier jedoch normale MIME-Type-Zuordnungen:
<Location /images/mixed>
ForceType None
</Location>
| Beschreibung: | Aktiviert DNS-Lookups auf Client-IP-Adressen |
|---|---|
| Syntax: | HostnameLookups On|Off|Double |
| Voreinstellung: | HostnameLookups Off |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis |
| Status: | Core |
| Modul: | core |
Diese Direktive aktiviert die DNS-Abfrage (Anm.d.Ü.: ein sogenannter
DNS-Lookup), so dass Hostnamen protokolliert (und in
REMOTE_HOST an CGIs/SSIs übergeben) werden könnnen.
Der Wert Double bezieht sich auf ein
Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup
durchgeführt wurde, wird dann auf dem Ergebnis ein
Forward-Lookup ausgeführt. Wenigstens eine der IP-Adressen
aus dem Forward-Lookup muss der Originaladresse entsprechen.
(In der "tcpwrappers"-Terminologie wird dies PARANOID
genannt.)
Unabhängig von der Einstellung wird ein Double-Reverse-Lookup
durchgeführt, wenn mod_authz_host zur
Zugriffskontrolle per Hostnamen eingesetzt wird. Dies ist aus
Sicherheitsgründen notwendig. Beachten Sie, dass das Ergebnis dieses
Double-Reverse-Lookups nicht generell verfügbar ist, solange Sie
nicht HostnameLookups Double setzen. Wenn beispielsweise
nur HostnameLookups On angegeben ist und eine Anfrage
für ein Objekt erfolgt, welches durch Hostnamen-Beschränkungen
geschützt ist, dann wird CGIs nur das Ergebnis des
Singel-Reverse-Lookups in REMOTE_HOST übergeben,
egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.
Die Voreinstellung ist Off, um Netzwerktraffic bei den
Angeboten einzusparen, die nicht tatsächlich Reverse-Lookups
benötigen. Es ist auch für die Endanwender besser, da sie nicht
die zusätzliche Wartezeit ertragen müssen, die ein Lookup mit
sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf
Offlassen. Das Hilfsprogramm logresolve, das standardmäßig in das
Unterverzeichnis bin Ihres Installationsverzeichnisses
kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von
protokollierten IP-Adressen nachzuschlagen.
| Beschreibung: | Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist |
|---|---|
| Syntax: | <IfDefine [!]Parametername> ...
</IfDefine> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Der Container <IfDefine Test>...</IfDefine>
wird dazu verwendet, Direktiven als bedingt zu kennzeichnen.
Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgeführt,
wenn Test wahr ist. Ist Test falsch, wird alles
zwischen der Start- und Endemarkierung ignoriert.
In der <IfDefine>-Anweisung kann
Test eine von zwei Formen annehmen:
!ParameternameIm ersten Fall werden die Direktiven zwischen der Start- und Endemarkierung nur ausgeführt, wenn der Parameter namens Parametername definiert ist. Die zweite Form kehrt den Test um und führt die Direktiven nur dann aus, wenn Parametername nicht definiert ist.
Das Argument Parametername ist ein sogenanntes
"Define", das beim beim Start des Servers in der
httpd-Befehlszeile durch
-DParameter angegeben wird.
<IfDefine>-Container können
ineinander verschachtelt werden, um einfache Multi-Parameter-Tests
zu implementieren. Beispiel:
httpd -DReverseProxy ...
# apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
| Beschreibung: | Schließt Direktiven ein, die abhängig vom Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden |
|---|---|
| Syntax: | <IfModule [!]Modulname|Modulbezeichner>
... </IfModule> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
| Kompatibilität: | Modulbezeichner sind ab Version 2.1 verfügbar. |
Der Container <IfModule
Test>...</IfModule> wird dazu verwendet,
Direktiven als abhängig von dem Vorhandensein eines speziellen
Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur
ausgeführt, wenn Test wahr ist. Ist Test
falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.
In der <IfModule>-Anweisung
kann Test eine von zwei Formen annehmen:
! und Size kann entweder ein + oder ein
- vorangestellt werden, was die Änderung einer
Vorgabe erlaubt, die von einem größeren Umfeld
geerbt wurde. Jedes Schlüselwort ohne ein solches Prefix
hebt die ererbte Einstellung sofort und vollständig auf.
Wenn die Konfiguration für ein Verzeichnis
FileETag INode MTime Size enthält
und die eines Unterverzeichnisses FileETag -INode,
dann ist die Einstellung für das Unterverzeichnis (die an
jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht
überschreibt) äquivalent mit
FileETag MTime Size.
| Beschreibung: | Enthält Direktiven, die sich nur auf passende Dateinamen beziehen |
|---|---|
| Syntax: | <Files Dateiname> ... </Files> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <Files>
begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen.
Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine
passende </Files>-Anweisung besitzen.
Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf
jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens)
angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die
<Directory>-Container
und .htaccess-Dateien gelesen sind, jedoch vor den
<Location>-Containern,
in der Reihenfolge ihres Auftretens ausgeführt. Beachten Sie, dass
<Files>-Anweisungen innerhalb von
<Directory>-Containern
auftreten können, um den Teil des Dateisystems einzuschränken,
den sie betreffen.
Das Argument Dateiname kann einen Dateinamen oder eine
Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein
einzelnes Zeichen passt und * auf eine beliebige Folge von
Zeichen. Erweiterte reguläre Ausdrücke können ebenfalls
verwendet werden, indem das Zeichen ~ hinzugefügt wird.
Beispielsweise würde
<Files ~ "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.
<FilesMatch> wird
jedoch bevorzugt.
Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb
von .htaccess-Dateien verwendet werden können.
Dies erlaubt den Anwendern auf Dateiebene die Kontrolle über ihre
eigenen Dateien.
| Beschreibung: | Enthält Direktiven, die für Dateinamen gelten, die auf einen regulären Ausdruck passen |
|---|---|
| Syntax: | <FilesMatch regex> ... </FilesMatch> |
| Kontext: | Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess |
| AllowOverride: | All |
| Status: | Core |
| Modul: | core |
Die Direktive <FilesMatch>
begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf
Dateinamen. Sie akzeptiert jedoch reguläre Ausdrücke.
Beispielsweise würde
<FilesMatch "\.(gif|jpe?g|png)$">
auf die gebräuchlichsten Grafikformate im Internet passen.