Mit einer .htaccess Datei in einem Verzeichnis können Sie das Verhalten des Webservers für dieses und alle darunterliegenden Verzeichnisse beeinflussen. Eine Anleitung was htaccess ist und auf was zu achten ist finden Sie hier bei uns unter Was ist htaccess?
Ein htaccess-File besitzt folgende Basis Direktiven:
- <Files>
- <FilesMatch>
- ForceType
- Header
- <IfDefine>
- <IfModule>
- <Limit>
- LimitRequestBody
- Satisfy
- SetHandler
Die Direktiven <Files>
, <FilesMatch>
, ForceType
, <IfModule>
werden unten etwas ausführlicher erleutert.
Die vollständigen Anleitungen finden Sie unter http://www.apache.org/
Files Syntax: <Files filename> ...</Files>
Mit <Files>
und </Files>
ist es möglich, Direktiven für bestimmte Dateien abhängig von ihrem Dateinamen zu vereinbaren. Das Argument filename benennt die Dateien, für die die nachfolgenden Einstellungen gelten sollen, wobei Wildcards ? und * erlaubt sind; d.h das Fragezeichen ( ? ) steht für ein beliebieges Zeichen, der Stern ( * ) für eine beliebige Zeichenkette. Regulären Ausdrücken ist die Tilde ( ~ ) voranzustellen.
Beispiele:
<Files "*\.gz">
...
</Files>
betroffen sind alle Dateien, die mit .gz enden
<Files ~ "\.(gz|GZ|gzip|GZIP|Z)$">
...
</Files>
betroffen sind alle Dateien, die mit .gz, .GZ, .gzip, .GZIP oder .Z enden
Files Match Syntax: <FilesMatch filename> ...</FilesMatch>
Wie <Files>
und <Files>
mit dem Unterschied, dass reguläre Ausdrücke direkt akzeptiert werden (also ohne Angabe von ~).
Beispiel:
<FilesMatch "\.(gz|GZ|gzip|GZIP|Z)$">
...
</FilesMatch>
betroffen sind alle Dateien, die mit .gz, .GZ, .gzip, .GZIP oder .Z enden
Force Type Syntax: ForceType media type
Die Direktive ForceType
im .htaccess-File bewirkt, dass alle Dateien des Verzeichnisses (und sämtlicher Unterverzeichnisse) vom HTTP-Server so behandelt werden, als seien sie vom angegebenen Typ media type.
Beispiel 1: Z.B. ist die Vereinbarung
ForceType application/octet-stream
dann sinnvoll, wenn alle Dateien eines Verzeichnisses nicht angezeigt sondern lediglich zum Downloaden freigegeben werden sollen.
Beispiel 2:
<FilesMatch "\.(gz|GZ|gzip|GZIP|Z)$">
ForceType application/octet-stream
</FilesMatch>
Alle Dateien, die mit .gz, .GZ, .gzip, .GZIP oder .Z enden, werden nicht angezeigt, sondern zum Downloaden freigegeben.
IfModule Syntax: <IfModule [!]module-name> ...</IfModule>
Die Klammer <IfModule test> ... </IfModule>
wird benutzt, um Direktiven abhängig von den im HTTP-Server installierten Modulen setzen zu können.
Der Module-Name kann angegeben werden als
- module-name
oder
- !module-name
In der ersten Form werden die nachfolgenden Direktiven abgearbeitet, wenn das Module Bestandteil des Apache-Servers ist, in der zweiten Form genau dann, wenn es NICHT Bestandteil des Apache-Servers ist.
Beispiel:
Im .htaccess-File wird vereinbart
<IfModule mod_auth.c>
AuthName " 'Interna' "
AuthType Basic
AuthUserFile /srv/www/virtual/www.mein-name.ch/htdocs/.htpasswd
require valid-user
</IfModule>