Zum Inhalt
Freitag, 16. Dezember 2005

Schützen von Files mit apache und php

Ich wollte immer schon ein Verzeichnis mit php schützen um meinen eigenen Authentifizierungs Mechanismus anzuwenden (ob der jetzt besser oder schlechter ist als ein Anderer ist nicht Teil dieses Beitrags).

Was man vielleicht braucht ist das Modul php-mime_magic, falls es nicht am Server installiert ist.

.htaccess
# thanxs to wordpress for these rules

<IfModule mod_rewrite.c>
# remove the directoryIndex
# hope you can overwrite this
Options -Indexes

RewriteEngine On
# when a file is present
RewriteCond %{REQUEST_FILENAME} -f

# rewrite to index.php
RewriteRule ^(.*)$ /SomeOtherLocation/index.php [QSA,L]
</IfModule>


index.php
<?php
// your auth goes here!

$filePath = $_SERVER["DOCUMENT_ROOT"] . $_SERVER["REQUEST_URI"];
// open the file binary
$fp = fopen($filePath, 'rb');

// send the right headers !!!
header("Content-Type: " . mime_content_type ($filePath));
header("Content-Length: " . filesize($filePath));

// dump the file and stop the script
fpassthru($fp);
exit;
?>


Und das nette ist das der User garnichts davon merkt weil in der Adressleiste sich nichts ändert (also kein Redirect).

Im php script nie vergessen den Header zu setzen.
Getagged mit: apache, php, webdevelopment

... beitrag kommentieren