2010-07-29 5 views
4

Je cherche un moyen de dire à Apache que s'il y a une demande pour un fichier d'un certain répertoire, il faut d'abord exécuter un script php pour vérifier si l'utilisateur est Je sais que je pourrais mettre le répertoire en dehors du docroot et laisser un script php gérer l'authentification et les téléchargements de fichiers, mais parce que ce sont des fichiers flash qui essaient d'ouvrir d'autres fichiers flash, il doit être un répertoire dans le docroot, et les fichiers ne devraient pas être envoyés par le script php. Dans l'ancienne configuration, nous utilisions mod_auth_script (http://sourceforge.net/projects/mod-auth-script/), mais comme il s'agit d'un module apache plutôt obscur, je préférerais avoir une solution plus commune si possible.Protéger les fichiers dans le répertoire en utilisant le script d'authentification dans php/apache

Répondre

6

Vous pouvez utiliser .htaccess et mod_rewrite pour rediriger les requêtes vers le script PHP. Essayez quelques googles et vous trouverez beaucoup d'exemples.

exemple contenu .htaccess:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ([0-9a-z-_]+)\.swf$ checkForAuth.php?&file=$1 [L] 

Ceci appellera checkForAuth.php quand quelqu'un essaiera d'accéder à un fichier * .swf. Dans checkForAuth.php vous devez vérifier votre session, lire le contenu de $ _GET ['file'], définir les en-têtes corrects (type de contenu pour flash) et sortir le contenu du fichier SWF demandé.

+0

bien je ne veux pas rediriger, car les fichiers flash doivent être accessibles directement. Apache devrait simplement vérifier si l'utilisateur peut accéder au répertoire (en utilisant une authentification basée sur PHP qui vérifie la session) et c'est tout. Sinon, le fichier flash de démarrage ne peut pas tirer dans les autres fichiers flash – Maarten

+0

La redirection ne sera pas visible du côté utilisateur. L'URL restera la même mais le contenu sera donné à travers le fichier PHP qui va vérifier la session. –

+0

ah à droite, donc les fichiers flash seront toujours demander /files/foo.swf .. est-ce trop demander un lien? – Maarten

Questions connexes