Condition un peu particulière avec htaccess!

Axelle -  
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à toutes et tous,

Voilà plusieurs heures que j'arpente internet à la recherche d'une syntaxe htaccess qui colle à mon besoin et j'ai du mal à trouver mon bonheur, aussi peut-être l'un(e) d'entre vous pourra m'aider car j'ai un peu de mal avec ce langage!

Voici la situation :

Un backoffice dans un sous répertoire avec accès géré sous php+BDD (pas de htaccess+htpassword) : www.monsite/backoffice/

Un autre sous-repertoire avec des docs PDF censés être réservés aux personnes loggés sur le backoffice :
www.monsite/backoffice/docs/

Le problème étant évidement qu'une personne se désinscrivant du backoffice (ou quelq'un connaissant l'url direct du PDF) peut récupérer les pdf en tapant bêtement l'adresse www.monsite/backoffice/docs/pdf_1.pdf

La piste que je suis est un htaccess à placer dans le répertoire www.monsite/backoffice/docs/ mais encore faut-il le rédiger correctement! Quelqu'un pourrait m'aider? Merci d'avance :-)

Axelle

3 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

en redirigeant "www.monsite/backoffice/docs/pdf_1.pdf " vers "www.monsite/backoffice/docs/index.php?fichier=pdf_1.pdf"

dans le "index.php" tu vérifies si le visiteur est logué.
si oui tu ouvres le fichier et le renvoie.

ça collerait ?
après faut trouver les fonctions qui vont avec !
-:o)
0
Axelle
 
Merci pour cette réponse ultra-rapide!

J'aime ton idée mais ne va-t-elle pas débouler sur une boucle infinie?

Si l'internaute est enregistré et que je lui accorde l'accès via un header redirect, cela va immanquablement le rebasucler vers l'index, et encore, et encore, non?

Axelle
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
Si l'internaute est enregistré et que je lui accorde l'accès via un header redirect
ben justement l'idée c'est pas de le rediriger mais d'ouvrir le fichier en binaire et de lui balancer le flux, comme ça il reçoit le fichier direct.

je regarde comment ouvrir et envoyer le contenu d'un fichier.
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
$fichier="fichier.pdf";
$fp = fopen($fichier,"r" );
$buff = fread($fp,filesize($fichier));
header("Content-Type: application/x-octet-stream\n" );
header( "Content-Disposition: attachment;filename=$fichier" );
header('Pragma: no-cache';);
header('Expires: 0';);
echo $buff;
fclose($fp); 

et hop, le fichier est envoyé au navigateur qui propose le téléchargement !
source

dis nous si ça fonctionne, moi aussi ça devrait me servir bientôt !
-;o)
0