Jump to navigation
15 September
Ein .htaccess-Guide
Unter dem Titel, Comprehensive guide to .htaccess existiert eine umfangreiche Anleitung zu den Möglichkeiten der Datei ".htaccess".
Behandelt werden u.a. die Punkte:
- Enabling SSI via htaccess
- Change your default directory page
- Prevent viewing of htaccess
- Preventing directory listing
tags: htaccess Guide
04 Mai
SSI in gewöhnlichen HTML Dokumenten
Um Server Side Includes in HTML Dateien auszuführen kann man natürlich in der httpd.conf oder der .htaccess diese Direktiven verwenden:
Apache 1.x
Auf Linux und UNIX Systemen hat man mit der XBitHack Direktive eine Alternative.
Auf Linux/UNIX Systemen kann so durch ein einfaches chmod +x aus einem HTML Dokument ein SSI Dokument gemacht werden.
Apache 1.x
Options +Includes AddType text/x-server-parsed-html .htmlApache 2.x:
Options +Includes AddType text/html .html AddOutputFilter INCLUDES .htmlWas allerdings zum Nachteil hat, dass alle HTML Dateien durch den SSI-Parser gehen müssen.
Auf Linux und UNIX Systemen hat man mit der XBitHack Direktive eine Alternative.
Options +Includes XBitHack onDurch XBitHack on in der httpd.conf oder der .htaccess können Server Side Includes auch in gewöhnlichen HTML Dokumenten ausgeführt werden. Vorraussetzung dafür ist, dass für die Dokumente für die das gelten soll, dass Execute-Bit (Dateirecht Ausführen) gesetzt ist.
Auf Linux/UNIX Systemen kann so durch ein einfaches chmod +x aus einem HTML Dokument ein SSI Dokument gemacht werden.
29 April
Index aufhübschen
Der Apache Webserver kann automatisch einen Verzeichnisindex erstellen.
Erreichen kann man dies über die Options Direktive.
Dafür muss man der Option-Direktive nur den Parameter +Indexes anhängen. Dies kann in der httpd.conf, innerhalb eines Virtual Host Containers oder in der .htaccess Datei erfolgen.
Der Parameter -Indexes verhindert übrigens das anzeigen eines Index.
Leider sieht der vom Apache erzeugte Standardindex etwas langweilig aus:
Beispiel 1
Dank der IndexOptions Direktive lässt sich da leicht Abhilfe schaffen.
Den ganzen Artikel lesen!
Erreichen kann man dies über die Options Direktive.
Dafür muss man der Option-Direktive nur den Parameter +Indexes anhängen. Dies kann in der httpd.conf, innerhalb eines Virtual Host Containers oder in der .htaccess Datei erfolgen.
Der Parameter -Indexes verhindert übrigens das anzeigen eines Index.
Leider sieht der vom Apache erzeugte Standardindex etwas langweilig aus:
Beispiel 1
Dank der IndexOptions Direktive lässt sich da leicht Abhilfe schaffen.
Den ganzen Artikel lesen!
15 April
IndexIgnore
In der Standardeinstellung zeigt der Apache einen automatisch generierten Index des betreffenden Verzeichnisses an, wenn dort keine Indexdatei (z.b. index.html) vorhanden ist.
Das kann man zwar abschalten, indem man in der Options Direktive einfach den Parameter Indexes weg lässt oder eben eine Indexdatei in das Verzeichnis legt.
Vielleicht will man aber auch, dass der Verzeichnisinhalt aufgelistet wird, nur eben nicht alles.
Bestimmte Dateien sollen auch bei erlaubtem Indexing ausgeblendet bleiben, und das geht mit der Direktive IndexIgnore, die sowohl in der httpd.conf, als auch in der .htaccess zur Anwendung kommen kann.
Das kann man zwar abschalten, indem man in der Options Direktive einfach den Parameter Indexes weg lässt oder eben eine Indexdatei in das Verzeichnis legt.
Vielleicht will man aber auch, dass der Verzeichnisinhalt aufgelistet wird, nur eben nicht alles.
Bestimmte Dateien sollen auch bei erlaubtem Indexing ausgeblendet bleiben, und das geht mit der Direktive IndexIgnore, die sowohl in der httpd.conf, als auch in der .htaccess zur Anwendung kommen kann.
IndexIgnore *.txt # Alle Textdateien ausblendenHat man in dem betreffenden Verzeichnis ein weiteres Unterverzeichnis liegen, in dem zusätzlich weitere Dateien ausgeblendet werden sollen, die im Hauptverzeichnis nicht ausgeblendet werden, so kann man dies mit einem weiteren IndexIgnore für dieses Verzeichnis erreichen.
IndexIgnore *.txt # Alle Textdateien ausblenden
<Location /unterverzeichnis>
IndexIgnore *.jpg # alle Text- und JPG Dateien werden ausgeblendet
</Location>
Wie man sieht, ersetzt diese weitere IndexIgnore Direktive die vorhergehende nicht, sondern ergänzt sie.tags: IndexIgnore
08 Januar
Kurztipp
Ab und an klagen einige, die den Apache 2.x unter Windows XP laufen lassen, dass Bilder, Grafiken und sogar ganze Webseiten nur verstümmelt angezeigt werden.
Abhilfe können diese Zeilen zusätzlich in der httpd.conf schaffen:
EnableSendfile, EnableMMAP, Win32DisableAcceptEx
Das Problem mit der verstümmelten Anzeige hängt oft mit zusätzlich installierten Programmen zusammen, die einige der erweiterten Funktionalitäten des Apache 2 stören können.
Hauptkandiaten dafür sind sogenannte Personal Firewalls (bsp: ZoneAlarm) und einige Virenscanner.
Abhilfe können diese Zeilen zusätzlich in der httpd.conf schaffen:
EnableSendfile Off EnableMMAP Off Win32DisableAcceptExLinks zur Apache Dokumentation:
EnableSendfile, EnableMMAP, Win32DisableAcceptEx
Das Problem mit der verstümmelten Anzeige hängt oft mit zusätzlich installierten Programmen zusammen, die einige der erweiterten Funktionalitäten des Apache 2 stören können.
Hauptkandiaten dafür sind sogenannte Personal Firewalls (bsp: ZoneAlarm) und einige Virenscanner.
26 November
Weg mit der Tilde
Auf einigen Webservern stösst man schonmal auf URLs, die eine Tilde (~), z.B. in der Form http://www.domain.tld/~user/, enthalten.
Mit der Tilde wird in der Regel ein Benutzerverzeichnis gekennzeichnet, der Name hinter der Tilde ist der Accountname des jeweiligen Nutzers.
Verantwortlich dafür ist das Modul mod_userdir.
Wenn die Tilde in dem URL allerdings stört, kommt man mit mod_userdir nicht weiter.
Man könnte zwar versuchen, den URL mittels Rewrite Regeln umzuformen, um die Tilde loszuwerden, aber warum so kompliziert, wenn es auch einfacher geht.
Das selbe, was mit mod_userdir erreicht wird, kann man auch mit mod_alias erreichen, vielleicht sogar etwas eleganter, zumindest aber ohne die Tilde.
Mit der AliasMatch Direktive kann man ein Verzeichnis oder eine Datei ausserhalb des eigentlichen Serververzeichnisses (z.B. die User-Verzeichnisse) einem URL zuweisen.
Um zum Beispiel http://www.domain.tld/userpages/username/ auf die entsprechenden User-Verzeichnisse bzw. deren Webinhalte unter /home/user/www/ zeigen zu lassen, kann man die AliasMatch Direktive wie folgt anwenden:
Mit der Tilde wird in der Regel ein Benutzerverzeichnis gekennzeichnet, der Name hinter der Tilde ist der Accountname des jeweiligen Nutzers.
Verantwortlich dafür ist das Modul mod_userdir.
Wenn die Tilde in dem URL allerdings stört, kommt man mit mod_userdir nicht weiter.
Man könnte zwar versuchen, den URL mittels Rewrite Regeln umzuformen, um die Tilde loszuwerden, aber warum so kompliziert, wenn es auch einfacher geht.
Das selbe, was mit mod_userdir erreicht wird, kann man auch mit mod_alias erreichen, vielleicht sogar etwas eleganter, zumindest aber ohne die Tilde.
Mit der AliasMatch Direktive kann man ein Verzeichnis oder eine Datei ausserhalb des eigentlichen Serververzeichnisses (z.B. die User-Verzeichnisse) einem URL zuweisen.
Um zum Beispiel http://www.domain.tld/userpages/username/ auf die entsprechenden User-Verzeichnisse bzw. deren Webinhalte unter /home/user/www/ zeigen zu lassen, kann man die AliasMatch Direktive wie folgt anwenden:
AliasMatch ^/userpages/([^/]*)/?(.*) /home/$1/www/$2Ein Aufruf von http://www.domain.tld/userpages/Paul/index.html würde z.B. die Homepage des Users Paul unter /home/Paul/www/index.html zurückliefern.
13 November
WebDAV
Das Modul mod_dav stellt WebDAV-Funktionalität zur Verfügung.
WebDAV bedeutet Web-based Distributed Authoring and Versioning und ist eine Erweiterung des HTTP-Protokolls.
Es erlaubt, Dateien und Verzeichnisse direkt via HTTP auf dem webserver zu bearbeiten.
Mögliche Funktionen sind u.a. das Erzeugen, Verschieben oder Kopieren von Dateien oder auch das Löschen von Ressourcen direkt auf dem Server, vorrausgesetzt, es wird ein entsprechender Client eingesetzt.
Macromedia Dreamweaver, Adobe GoLive und Microsoft Office z.B. sind WebDAV fähig.
Zum Modul mod_dav gehört noch das Modul mod_dav_fs, es arbeitet als Support Modul für mod_dav und ermöglicht es diesem auf Ressourcen innerhalb des Server Filesystems zuzugreifen.
I.R. sollte man beide Module einbinden.
Eingebunden werden die Module mit
Aus Sicherheitsgründen sollte man aber besser die Digest-Authentifikation oder SSL verwenden.
Um zu verhindern, dass verschiedene User gleichzeitig Änderungen an der selben Datei vornehmen, verwendet das DAV Modul eine Lock-Datenbank. In welcher Datei diese Datenbank abgelegt werden soll, wird dem DAV-Modul mit der Direktive DavLockDB mitgeteilt.
Als Argument wird dabei der Dateiname angegeben.
Solange DavDepthInfinity nicht auf on gesetzt ist, wird der Apache Anfragen mit der HTTP-Methode PROPFIND, bei denen der Header Infinity übermittelt wird, ignorieren.
Eine solche Anfrage birgt die Möglichkeit eines DOS Angriffs.
DavDepthInfinity steht standardmäßig auf off
Greift ein DAV-Client auf eine Ressource zu, so kann er angeben, für wie lange er ein Ressource-Lock auf diese Ressource haben will.
Wird die Direktive DavMinTimeout mit einem Wert größer als dem default Wert 0 konfiguriert, wird diese Ressource-Lock Anfrage des DAV-Clients ignoriert und stattdessen der konfigurierte Wert vorgegeben.
Standardmäßig hat DavMinTimeout den Wert 0.
Die Angabe des Timeout-Wertes erfolgt in Sekunden.
WebDAV bedeutet Web-based Distributed Authoring and Versioning und ist eine Erweiterung des HTTP-Protokolls.
Es erlaubt, Dateien und Verzeichnisse direkt via HTTP auf dem webserver zu bearbeiten.
Mögliche Funktionen sind u.a. das Erzeugen, Verschieben oder Kopieren von Dateien oder auch das Löschen von Ressourcen direkt auf dem Server, vorrausgesetzt, es wird ein entsprechender Client eingesetzt.
Macromedia Dreamweaver, Adobe GoLive und Microsoft Office z.B. sind WebDAV fähig.
Zum Modul mod_dav gehört noch das Modul mod_dav_fs, es arbeitet als Support Modul für mod_dav und ermöglicht es diesem auf Ressourcen innerhalb des Server Filesystems zuzugreifen.
I.R. sollte man beide Module einbinden.
Eingebunden werden die Module mit
LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.sound aktivieren kann man DAV z.B. so
DavLockDB /usr/local/apache/var/DavLock <Location /> Dav On AuthType Basic AuthName DAV AuthUserFile user.passwd <LimitExcept GET POST HEAD OPTIONS> require user admin </LimitExcept> </Location>In diesem Beispiel wird die Basic-Authentifikation verwendet.
Aus Sicherheitsgründen sollte man aber besser die Digest-Authentifikation oder SSL verwenden.
Um zu verhindern, dass verschiedene User gleichzeitig Änderungen an der selben Datei vornehmen, verwendet das DAV Modul eine Lock-Datenbank. In welcher Datei diese Datenbank abgelegt werden soll, wird dem DAV-Modul mit der Direktive DavLockDB mitgeteilt.
Als Argument wird dabei der Dateiname angegeben.
DavLockDB /usr/local/apache/var/DavLockDem DAV-Modul stehen noch die Direktiven DavDepthInfinity und DavMinTimeout zur Seite.
Solange DavDepthInfinity nicht auf on gesetzt ist, wird der Apache Anfragen mit der HTTP-Methode PROPFIND, bei denen der Header Infinity übermittelt wird, ignorieren.
Eine solche Anfrage birgt die Möglichkeit eines DOS Angriffs.
DavDepthInfinity steht standardmäßig auf off
Greift ein DAV-Client auf eine Ressource zu, so kann er angeben, für wie lange er ein Ressource-Lock auf diese Ressource haben will.
Wird die Direktive DavMinTimeout mit einem Wert größer als dem default Wert 0 konfiguriert, wird diese Ressource-Lock Anfrage des DAV-Clients ignoriert und stattdessen der konfigurierte Wert vorgegeben.
Standardmäßig hat DavMinTimeout den Wert 0.
Die Angabe des Timeout-Wertes erfolgt in Sekunden.
<Location /> Dav On DavMinTimeout 200 ... ... </Location>
tags: Apache, WebDAV, Konfiguration
