Was ist htaccess?
Mit einer .htaccess Datei in einem Verzeichnis können Sie das
Verhalten des Webservers für dieses und alle darunterliegenden
Verzeichnisse beeinflussen. Sie können z.B. den Zugriff auf die
Webseiten in diesen Verzeichnissen nur für bestimme IP-Absender
oder nur gegen Namen und Passwort erlauben.
In einer .htaccess Datei können viele verschiedene Anweisungen
stehen. Aus Sicherheitsgründen sind aber nicht alle für
den Apache Server möglichen Anweisungen erlaubt.
Auf was ist zu achten?
- htpasswd wird nur auf unseren Linux-Web-Servern "Profi" und "Mini" unterstützt. Bei Windows-Server und bei Homepages z.B. www.rhone.ch/dein-name wird dies nicht unterstützt.
- Es ist wichtig, daran zu erinnern, dass Unix case-empfindlich ist und dass "Index.htm" nicht dasselbe ist wie "index.htm".
- Zeilen im .htaccess die mit # anfangen sind Bemerkungen.
- Schreiben Sie alle Datei- und Verzeichnisnahmen in Kleinschrift - das minimiert Tippfehler.
- Testen Sie die Einstellungen am Schluss.
- Zugriff mit Passwort:
Sie können diese Variante der .htaccess Datei sehr einfach über ein Webinterface erstellen. Dabei wird etv. vorhandene .htaccess Datei überschrieben und die Namen mit Passwörtern in einer .htpasswd Datei im gleichen Verzeichnis erstellt.
Mit dem Webinterface können Sie aber nur das Unterverzeichnis /secure (und alle darin enthaltenen Verzeichnisse auch separat) schützen. Wenn Sie keinen Shell-Zugang haben, können Sie mit dem Webinterface die nötigen Dateien .htaccess und .htpasswd sehr einfach erstellen und mit einem FTP-Client in ein beliebiges anderes Verzeichnis kopieren. - Alle in einer .htaccess-Datei festgelegten Einstellungen gelten für das aktuelle Verzeichnis und für alle Unterverzeichnisse (sofern dort nicht eine andere .htaccess-Datei vorhanden ist.)
Fehlermeldung 403
Erscheint beim Aufruf eines Verzeichnisses die Fehlermeldung 403?
Dann gibt es keine Index-Datei und der Verzeichnisinhalt darf nicht aufgelistet werden.
Lösung:
- Erstellen Sie eine Datei mit Namen index.html oder index.htm oder index.php mit dem gewünschten Inhalt. Diese Dateien werden in jedem Verzeichnis direkt angezeigt.
- Erstellen Sie eine Datei mit Namen .htaccess und einer Text-Zeile "Options +Indexes". Damit wird in diesem und allen Unterverzeichnissen der Inhalt aufgelistet.
Sicherheit
Sicherheitslücken sind in einem System nie vollständig auszuschliessen.
Mögliche Sicherhteitsprobleme sind der unerlaubte Zugriff auf
Daten die nur mit Namen und Passwort oder nur für gewisse Absender
erreichbar sein sollten. Aber auch da umgekehrte, dass Daten überhaupt
nicht mehr zugänglich sind. Bitte beachten Sie folgende Punkte:
- Testen Sie alle gemachten Einstellungen am Schluss!
- Im Notfall können Sie eine .htaccess Datei einfach löschen. Es gelten dann die Anweisungen der nächst höher gelegenen .htaccess Datei oder wenn keine vorhanden ist des Webservers.
Debuggen / Loggen
Fehlermeldungen erscheinen häufig direkt im Browser.
Im Verzeichnis "/logs" stehen die Zugriffsdaten für
den letzten Tag in der Datei "httpd.access_old" zur Verfügung. Diese Daten werden automatisch und täglich in eine aussagekräftige Webstatistik verarbeitet.
Anweisungen
Folgende Options sind bei allen Webservern automatisch aktiv:
- -Indexes
- +SymLinksIfOwnerMatch
- -IncludesNoExec
Auf dem RhoneWeb sind, neben den Basis-Direktiven folgende Direktiven freigeschalten:
- AuthConfig
- Indexes
- Limit
- FileInfo
- Options: Indexes, SymLinksIfOwnerMatch, Multiviews
Anleitungen
Eine vollständige Liste der damit möglichen Anweisungen
finden Sie bei www.apache.org.
Beispiele
Hier einige typische Beispiele für .htaccess Dateien:
Verzeichnisinhalt in aktuellen und darunter liegen Verzeichnissen anzeigen:
#Verzeichnisinhalt anzeigen
Options +Indexes
Beispiel für passwort geschützte Datei (oder Verzeichnis):
# Konfiguration Passwortschutz
AuthName "Nur mit Passwort"
AuthType Basic
AuthUserFile /path/to/the/htpasswordfile/.htpasswd
require valid-user
Dazu gehört natürlich die Datei .htpasswd mit den Namen
und den Passwörtern.
anton:u9idEyhN/.jSI
emil:yU8eLSs.C3x/w
berta:xi9695EeMO4Pg
clara:U71hPIKtBh896
Am einfachsten erstellen Sie eine Datei über das Webinterface
und kopieren sie dann an die gewünschte Stelle.
Sie können eine .htpasswd Datei für verschiedene .htaccess
Dateien benutzen.Falls Sie die Option "Shell" haben, können Sie die .htpasswd Datei auch mit dem Programm htpasswd erstellen und ändern.
Beispiel um https zu erzwingen (nur mit Option "Secure Server"):
# HTTPS-Verschluesselung erzwingen
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
# fuer alle Dateien
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI}
Beispiel einer Umleitung (Weiterleitung):
# Umleitung
Redirect permanent /alteseiten/index.htm http://www.dein-name.ch/
Beispiel für das Anzeigen eigener Webseiten bei Webserver-Fehlern:
# Zeiger auf meine angepassten Fehlermeldungen.
ErrorDocument 401 /fehler401.html
ErrorDocument 403 /fehler403.html
ErrorDocument 404 /fehler404.phtml
Natürlich müssen dann auch die 3 entsprechenden Webseiten
vorhanden sein.Beispiel um Zugriffe von bestimmten IP-Absendern zu erlauben oder zu verhindern:
#Zugriff von allen IP-Absendern 195.65.53.X erlauben
order deny,allow
allow from 195.65.53.
deny from all
Beispiel um Zugriffe von bestimmten Namen zu erlauben oder zu verhindern:
#Zugriff für alle rhone.ch Absender erlauben
order deny,allow
allow from rhone.ch
deny from all
Beispiel Dateien komprimiert zum Client Browser zu liefern.
SetOutputFilter DEFLATE