====== HTACCESS ======
Die Datei ''.htaccess'' kann die Server-Einstellungen des [[apache-httpd:start|Apache Web-Servers]] in einzelnen Unterverzeichnissen verändern.
===== Startseite =====
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 [[webdev:http|HTTP-Error 403]] zurückgegeben).
==== Startseite für Wartungsmodus ====
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 [[lexikon:cms|CMS-Update]]:
DirectoryIndex maintain.html
===== Fehlerseiten =====
Über die Eigenschaft ''ErrorDocument'' können eigene Fehlerseiten definiert werden:
ErrorDocument 403 /error403.html
ErrorDocument 404 /error404.html
Für jeden [[webdev:http|HTTP-Error-Code]] muss eine eigene Einstellung mit ''ErrorDocument'' vorgenommen werden.
==== Fehler 403 ====
**Pro-Tipp:** Um vor einem Besucher den [[webdev:http|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 [[apache-httpd:logs|Logfiles]] des Web-Servers wird trotzdem der [[webdev:http|HTTP-Error 403 "Forbidden"]] protokolliert.
===== Weiterleitung =====
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 Umlaut-Domains =====
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]
===== Weiterleitung auf HTTPS =====
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Quelle: [[http://www.sysadminslife.com/linux/quicktipp-weiterleitung-redirect-von-http-auf-https-via-apache-oder-htaccess/|Sysadmin's Life: Weiterleitung von HTTP auf HTTPS einrichten]]
===== Verzeichnis-Auflistung =====
==== Auflistung deaktivieren ====
Die Verzeichnis-Auflistung kann, wenn sie nicht schon standardmäßig deaktiviert ist, über die Option ''-Indexes'' deaktiviert werden:
Options -Indexes
===== Links =====
* [[http://www.htaccessredirect.net/|.htaccess Generator]]
* [[http://www.htaccessredirect.de/|.htaccess Redirect]]
* [[https://gist.github.com/akamola/5683621|Arnes Basis-HTACCESS]]