<Directory>  nach oben

Mit dem Directory-Container können Einstellungen auf ein bestimmtes Verzeichnis im Systempfad getätigt werden. Sollte dieses Verzeichnis nicht unterhalb des DocumentRoot liegen muss es mit Alias in das DocumentRoot eingegliedert werden. Zusätzlich können bei der Pfadangabe Regular Expressions verwendet werden.

Alias /domain1/ /usr/local/domain1/htdocs/
<Directory /usr/local/domain1/htdocs>
   # ... Einstellungen für das Verzeichnis ...
</Directory>

<Location>  nach oben

Der Location-Container entspricht dem Directory-Container mit dem Unterschied, dass kein Verzeichnis des Dateisystems sondern eineURL(also virtuelles Verzeichnis) benannt wird.

<Location /abc>
# ... Einstellungen für das Verzeichnis http://hostname/abc ...
</Location>

<File>  nach oben

Der File-Container bezieht sich, wie der Name schon sagt, auf bestimmte Dateien innerhalb des DocumentRoot oder der Container <Location> und <Directory>. Mit Ihm können Konfigurationen für Dateien angelegt werden.

<File *.shtml>
  Option Include
  Order deny,allow
  deny from all
  allow from *.domain1.org
</File>

Dies würde allen Usern die Ihre Rechner in der domain1.org haben den Zugriff auf shtml Dateien erlauben.

Alias  nach oben

Mit Alias kann ein Verzeichnis das ausserhalb des DocumentRoot liegt in die Dokumentenstruktur eingebunden werden. Und mit <Location> können dann dort Einstellungen getätigt werden.

# Syntax: Alias Verzeichnisname Pfad-zum-reelen-Verzeichnis
Alias /secured /usr/local/sicherheitsbereich
<Location /secured>
   # ... Einstellungen ...
</Location>

DirectoryIndex  nach oben

Mit dem DirectoryIndex wird bestimmt nach welcher Datei der Webserver suchen soll wenn nur ein Verzeichnis aber keine Datei angefordert wird (also www.meinserver.de/abc/ z.B.).

DirectoryIndex index.html index.html.var index.php index.shtml

AllowOverride  nach oben

Mit dieser Direktive wird bestimmt wie der Apache Webserver mit externen Konfigurationsdateien umgehen soll. Dieses betrifft nicht die per Include eingebundenen Dateien sondern .htaccess-Dateien mit denen der Apache zusätzlich konfiguriert werden kann. Die Möglichkeiten der Einstellungen sind durch die folgenden Parameter auf bestimmte Bereiche beschränkt:
None - Deaktiviert die Verwendung von externen Konfigurationsdateien
All - Aktiviert alle Einstellungen die in externen Konfigurationsdateien erlaubt sind
AuthConfig - Aktiviert Authentifizierungseinstellungen (AuthType)
FileInfo - Aktiviert Einstellungen auf gespeicherte Dateien (ErrorDocument)
Indexes - Aktiviert Einstellungen des Verzeichnisindexes (AddIcon)
Limit - Aktiviert Zugriffseinstellungen. (Allow, Deny)
Options - Aktiviert Einstellungen für Verzeichnisverhaltensweisen (Options)

Options  nach oben

Die Direktive Options bestimmt die Einstellungen die das Verhalten von Verzeichnissen zuständig sind. Damit kann zum Beispiel ein automatischer Index in einem Bilderverzeichnis und SSI für bestimmte Verzeichnisse an oder abgeschaltet werden. Folgende Optionen sind möglich:
None - Keine Option für das entsprechende Verzeichnis wird gesetzt
All - Die Optionen ExecCgi, FollowSymLinks, Includes und Indexes sind eingeschaltet
ExecCgi - Erlaubt die Ausführung von CGI Skripten in dem Verzeichnis
FollowSymLinks - Unter Linux/Unix wird einem Symbolischen Link im DocumenRoot gefolgt
SymLinksIfOwnerMatch - Dieselbe Option wie FollowSymLinks nur mit dem Zusatz das nur dem Link gefolgt wird wenn die Besitzrechte von Link und Ziel identisch sind
Includes - Erlaubt die Ausführung von SSI
IncludesNoExec - Erlaubt die Ausführung von SSI , verbietet die Einbindung von Skripten (#include) und die Ausführung von externen Programmen (#exec)
Indexes - Bestimmt ob ein Verzeichnisindex bei fehlender Indexdatei angezeigt werden soll oder nicht (bei nein wird ein 403 Statuscode zurückgesendet)
MultiViews - Damit erzeugt der Apache eine alternative Liste der verfügbaren Dateien, wenn die angeforderte Datei nicht vorhanden ist. Dies kann dazu genutzt werden um sehr leicht mehrere Sprachen einer Webseite zu erzeugen

Order, Allow, Deny  nach oben

Mit Order läßt sich einstellen in welcher Reihenfolge die Direktiven Allow und Deny abgearbeitet warden. Mögliche Optionen sind allow,deny | deny,allow | Mutual-failure (kein Leerzeichen nach dem Komma!). Allow,deny erlaubt erst den Zugriff und schränkt ihn anschließend ein. Dies kann genutzt werden um bestimmte Clients auszusperren, etwa Suchroboter. Deny,allow sperrt erst den Zugriff und erlaubt dann einzelnen Clients den Zugriff. Im Intranet eine Firma kann somit der Zugriff für alle gesperrt werden und wird dann für den Einkauf wieder geöffnet. Mutual-failure ist identisch mit allow,deny aber erlaubt nur Clients den Zugriff die bei allow erlaubt sind und nicht in deny stehen.
Die Direktiven Allow und Deny funktionieren dabei nach der gleichen Syntax: Angegeben wird eine IP, IPv6, Hostname oder Teile daraus. Außerdem können Umgebungsvariablen verwendet werden. Trifft ein Fall auf den jeweiligen Clienten zu wird der Zugang erlaubt bzw. verwehrt. Beispiel:

Order allow,deny
allow from all
deny from .googlebot.com
# erlaubt den Zugriff aller Clients mit der 
# Ausnahme von *.googlebot.com.
Order deny,allow
deny from all
allow from .domain1.de
# verbietet allen den Zugriff und erlaubt ihn von 
# Clients der domain1.de.

.htaccess, AccessFileName  nach oben

Mit AccessFileName kann festgelegt werden in welcher Datei nach Verzeichniskonfigurationen gesucht wird (siehe auch AllowOverride). Standardmäßig lautet diese .htaccess (Punkt-htaccess; kein Dateiname, nur Suffix) und wird durch eine entsprechende <File> Direktive vor unerlaubtem Zugriff geschützt. In der Datei können die Einstellungen angegeben werden die über AllowOverride erlaubt sind. Um ein Verzeichnis zu schützen kann folgende .htaccess Datei verwendet werden.

#Einstellung in der httpd.conf
AccessFileName .htaccess
<Files ~ "^.ht">
  Order allow,deny
  Deny from all
</Files>

#Inhalt von .htaccess
AuthType Basic
AuthName "Geschützter Bereich"
AuthUserFile /usr/local/apache2/conf/.htpasswd
require valid-user

Damit wird das Verzeichnis in dem sich die .htaccess befindet geschützt. Es wird ein User und ein Passwort benötigt. Diese Daten entnimmt der Webserver der Datei .htpasswd.

.htpasswd  nach oben

Diese Datei enthält eine Liste bekannter User mit Ihren Passwörtern. Sie kann mit dem Tool htpasswd oder htpasswd.exe erzeugt werden welches sich im bin Verzeichnis des Apache Webservers findet.

steffen:$apr1$Nc/.....$U4gmrmy1lx/3mBlCx4JJ0.
root:$apr1$Tr/.....$uLleeTRsGId08332E4Xyo1
chef:$apr1$is/.....$CYOrUXYjHZL6CeKdBpvVJ1

So könnte der Inhalt einer Passwortdatei aussehen.