www.bimminger.at

Tipps / Internet / Apache

Apache

Apache: Öffnen von Dateien im Browserfenster via httpd.conf bzw. .htaccess verhindern


Warum muss eigentlich ein PDF-, Excel oder Word-Dokument im Browserfenster geöffnet werden? Ich verstehe das zwar nicht aber ich hab mich damit beschäftigt wie ich den Blödsinn verhindern kann.

Die Lösung war notwendig für eine Intranet-Anwendung auf Apache-Basis. Allerdings kam die Verwendung von Durschschleif-Skripten (wie in PHP mit passthru) oder die Veränderung der Browser-Einstellungen auf den Clients nicht in Frage.

Bei den meisten Skripten die Dateien durchschleifen habe ich den HTTP-Header

Content-Disposition: attachment

entdeckt. Das muss doch via Apache-Konfiguration auch gehen, also hab ich nach einer Lösung gesucht - und gefunden:

Eine Lösung die für meine Aufgabenstellung funktioniert hat


Entweder direkt in der httpd.conf einfügen oder besser nur dort wo es benötigt wird. Ich habe folgenden Teil in eine .htaccess verpackt und in das Verzeichnis mit den Download-Dateien kopiert:


        Header set Content-Disposition attachment

Um diese Vorgehensweise verwenden zukönnen, muss AllowOverride für .htaccess Dateien so gesetzt sein, dass File-Direktiven überschrieben werden dürfen. Natürlich muss das Apache-Modul mod_headers geladen sein. Ein kurzer Test kann dann nach einem Neustart des Apache-Dienstes am besten mit curl durchgeführt werden. Hier kann man sehen ob die zusätzlichen HTTP-Header mitgeschickt werden.

Natürlich kann man diese Direktive auch in anderen Ebenen (vhost, directory, etc.) verwenden, aber ausführlichere Informationen gibts in der Apache-Dokumentation zu finden. Die wichtigsten Links für diese Problem habe ich hier zusammengefasst:


Header-Direktive

Die Header-Direktive in der Apache-Dokumentation.


Files-Direktive

Die Files-Direktive in der Apache-Dokumentation.



IETF - RFC2183

RFC mit Hinweis zu Content-Disposition und einer ausführlichen Erklärung.




Um einen Diskussionsbeitrag zu posten müssen Sie eingeloggt sein.