Die Datei .htaccess
kann die Server-Einstellungen des Apache Web-Servers in einzelnen Unterverzeichnissen verändern.
Standardmäßig wird die Datei index.html
bzw. index.htm
beim Aufruf einer Website geladen. Über die Eigenschaft DirectoryIndex
kann diese verändert werden:
DirectoryIndex index.php index.html index.htm
In dieser Auflistung wird nun zuerst versucht die Datei index.php
zu laden; falls diese nicht vorhanden ist, wird versucht die Datei index.html
zu laden und falls diese nicht vorhanden ist die Datei index.htm
(und falls diese nicht vorhanden ist wird ein HTTP-Error 403 zurückgegeben).
Diese Funktion lässt sich gut dafür verwenden eine alternative Startseite zu definieren, wenn sich die Website gerade im Wartungsmodus befindet, z.B. bei einem CMS-Update:
DirectoryIndex maintain.html
Über die Eigenschaft ErrorDocument
können eigene Fehlerseiten definiert werden:
ErrorDocument 403 /error403.html ErrorDocument 404 /error404.html
Für jeden HTTP-Error-Code muss eine eigene Einstellung mit ErrorDocument
vorgenommen werden.
Pro-Tipp: Um vor einem Besucher den HTTP-Error 403 "Forbidden" zu verstecken, sollte dieser auf eine 404-Fehlerseite umgeleitet werden:
ErrorDocument 403 /error404.html
Das hat den Vorteil, das für einen möglichen Angreifer nicht direkt offensichtlich ist, ob eine Unterseite vorhanden ist. In den Logfiles des Web-Servers wird trotzdem der HTTP-Error 403 "Forbidden" protokolliert.
Weiterleitung von einem Hauptverzeichnis /
auf ein Unterordner /cms
:
RedirectMatch permanent ^/$ http://www.example.com/cms/
Weiterleitung von einer Domain auf eine andere:
redirect 301 / http://www.example.com/
Weiterleitung mit mod_rewrite.
Beispiel: Weiterleitung der Domains müller.de
, www.müller.de
und mueller.de
zu www.mueller.de
RewriteCond %{HTTP_HOST} ^(?:www\.)?xn--mller-kva\.de$ [NC,OR] # müller.de RewriteCond %{HTTP_HOST} ^mueller\.de$ [NC] # mueller.de RewriteRule ^(.*) http://www.mueller.de/$1 [L,R]
RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Quelle: Sysadmin's Life: Weiterleitung von HTTP auf HTTPS einrichten
Die Verzeichnis-Auflistung kann, wenn sie nicht schon standardmäßig deaktiviert ist, über die Option -Indexes
deaktiviert werden:
Options -Indexes