Homepage-Webhilfe Event-Banner

Apache-Konfiguration

Der Apache HTTP Server ist ein Webserver von der Apache Software Foundation (kurz ASF) und zählt zu den verbreitetsten Webservern. Jedoch hat im Laufe der letzten Jahre die Verwendung des Microsoft Internet Information Services (IIS) sowie die Verwendung anderer Webserver zugenommen. Falls Sie ein „normales“ bzw. durchschnittliches Hosting-Angebot nutzen, werden Sie jedoch mit sehr hoher Wahrscheinlichkeit Apache als Webserver haben. Apache ist plattformunabhängig und unter anderem auch im Software-Paket XAMPP enthalten.

In diesem Thema wollen wir uns damit beschäftigen wie man den Apache-Webserver konfigurieren kann. Eine der wichtigsten Konfigurationsdateien hierfür ist die Datei .htaccess. Die Datei .htaccess darf in jedem Verzeichnis vorkommen. Alle „Regeln“ die dort definiert sind, gelten dann für das Verzeichnis, in welchem die Datei hinterlegt ist inkl. allen Unterverzeichnissen.


In der .htaccess-Datei können Sie individuelle Fehlerdokumente festlegen. Diese Fehlerdokumente werden aufgerufen, wenn eine HTTP-Antwort mit dem Statuscode 4xx oder 5xx beantwortet werden würde. Beliebt ist dieses Verfahren vor allem für den Statuscode 404, welcher auf das Fehlen eines Verzeichnisses oder einer Datei hinweist, für den Statuscode 403, welcher bei einer Zugriffsverweigerung auftritt, oder für den Statuscode 500, welcher auf einen (allgemeinen) internen Serverfehler hinweist. Ein Eintrag für ein solches Fehlerdokument besteht aus dem Schlüsselwort ErrorDocument, dem Statuscode und dem Pfad zum Fehlerdokument. Wird ein absoluter Pfad (z. B. http://www.example.com/error-404.html) angegeben, so erfolgt eine Umleitung. Bei der Angabe eines relativen Pfads (dazu zählt auch eine Pfadangabe mit Bezug auf das Wurzelverzeichnis, z. B. /error-404.html) erfolgt keine Umleitung, es wird stattdessen einfach der Inhalt der angegebenen Fehlerseite an den Browser gesendet.

ErrorDocument 403 /zugriff-verweigert.html
ErrorDocument 404 /nicht-gefunden.html
ErrorDocument 500 /server-fehler.html

Übrigens: Wenn Sie statt einer Fehlerseite lediglich einen Text anzeigen möchten, dann können Sie auch einfach den anzuzeigenden Text (anzugeben in doppelten Anführungszeichen) notieren:

ErrorDocument 404 "Die Seite wurde nicht gefunden!"

Der Apache-Webserver enthält natürlich bereits eine lange Liste an Zuordnungen von MIME-Typen (z. B. text/html) zu Dateierweiterungen (z. B. .html). Manchmal kann es jedoch notwendig sein, eine solche Zuordnung manuell hinzuzufügen. Hierfür notieren Sie das Schlüsselwort AddType, gefolgt von dem MIME-Typ und der Angabe von einer oder mehreren Dateierweiterung(en).

AddType text/plain .txt
AddType text/html .html .htm

Im Apache-Webserver können Sie Zugriffseinstellungen setzen, d. h. Sie können den externen Zugriff (Zugriff per HTTP, i. d. R. per Webbrowser) auf bestimmte Dateien und Ordner verbieten. Wird trotzdem auf eine Datei oder einen Ordner zugegriffen, auf welchen der Zugriff verweigert ist, so wird ein 403-Fehler ausgelöst. Die wichtigsten Schlüsselwörter hierbei sind allow (Zugriff erlauben) und deny (Zugriff verbieten). Bevor wir jedoch die Zugriffseinstellungen setzen, müssen wir die Reihenfolge festlegen. Dafür dient das Schlüsselwort order. Mögliche Angaben sind daher also order allow,deny (erst erlauben, dann verbieten) und order deny,allow (erst verbieten, dann erlauben). Um eine Zugriffsregel zu definieren, benötigen Sie das Schlüsselwort allow oder deny, gefolgt vom Schlüsselwort from und einer IP-Adresse, einem DNS-Namen oder dem Schlüsselwort all (für alle). Die IP-Adressen und DNS-Namen können dabei auch abgekürzt werden. Hierzu ein Beispiel, bei welchem der Zugriff nur für die IP-Adressen 123.234.x.x und den DNS-Namen *.example.com erlaubt sind:

order deny,allow
deny from all
allow from 123.234.
allow from .example.com

Möchten Sie den Zugriff für alle Adressen verbieten, so kann Ihnen folgender Code helfen:

order allow,deny
deny from all

Natürlich können Sie den Zugriff auch mit der FilesMatch-Direktive kombinieren, um somit Zugriffseinstellungen z. B. nur für Dateien mit der Dateierweiterung .php anzuwenden:

<FilesMatch "\.(php)$">
    order allow,deny
    deny from all
</FilesMatch>

Eine oft gesuchte Konfiguration ist die Umleitung von HTTP auf HTTPS. Meist wird diese Einstellung nicht in der .htaccess-Datei, sondern eher in der Datei httpd.conf oder httpd-vhosts.conf gesetzt. Um eine solche Umleitung durchzuführen, benötigen Sie das Rewrite-Modul, mit welchem komplexe Regeln aufgestellt werden können. Die Konfiguration zur Umleitung von HTTP auf HTTPS sieht wie folgt aus:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Im Regelfall ist es nicht erwünscht, dass man den Inhalt eines Verzeichnisses über den Browser einsehen kann (das sogenannte directory listing, zu Deutsch Verzeichnisauflistung), sofern der Ordner über keine Verzeichnisindex-Datei (zumeist index.htm, index.html oder index.php) verfügt. Ist die Verzeichnisauflistung deaktiviert und keine Verzeichnisindex-Datei vorhanden, so wird ein 403-Fehler (Zugriff verweigert) ausgelöst. Die Einstellung für die Verzeichnisauflistung kann mit der Option +Indexes (Auflistung aktivieren) und -Indexes (Auflistung deaktivieren) gesetzt werden.

Options -Indexes
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK