Mon script PHP créer un répertoire de l'utilisateur pour stocker des fichiers privés et je dois le garder privé, sauf pour le propriétaire..htaccess protéger télécharger les fichiers privés du répertoire de l'utilisateur en utilisant php
Fondamentalement, ma structure est comme ceci:
- root/
- storage/
---- users/
----------user1/
---------------.htaccess
---------------images/
---------------tmp/
-------------------session-id-file
----------user2/
---------------.htaccess
---------------images/
---------------tmp/
-------------------session-id-file
Cela signifie que lorsque un nouveau registre d'utilisateur, le répertoire d'un nouvel utilisateur est créé dans/stockage/utilisateurs:
$dir = __DIR__ . "/storage/user/" . $user["id"]; mkdir($dir);
Ensuite, une nouvelle .htaccess est créé à l'intérieur:
$myfile = fopen($file, "w") or die("Unable to create file!");
$txt = "RewriteCond %{HTTP_COOKIE} PHPSESSID=(\w+)\n
**RewriteCond {CURRENT-DIRECTORY}/tmp/access-%1 -f \n**
RewriteRule ^(.+)$ $1 [L]\n
RewriteRule .+ /deny [L]\n";
fwrite($myfile, $txt);
fclose($myfile);
La .htacce ss apparaît comme:
RewriteCond %{HTTP_COOKIE} PHPSESSID=(\w+)
RewriteCond {CURRENT-DIRECTORY}/tmp/access-%1 -f
RewriteRule ^(.+)$ $1 [L]
RewriteRule .+ /deny [L]
Lorsque l'utilisateur connexion d'un nouveau fichier de session-id est crerated dans le répertoire tmp de l'utilisateur:
touch($dir . "/tmp/" . session_id());
Ma question est la suivante: comment détecter {répertoire courant} où le htaccess est situé ? Fondamentalement comment corriger la mauvaise ligne .htaccess:
RewriteCond {CURRENT-DIRECTORYY}}/tmp/access-%1 -f \n
J'ai vu la même question, mais je ne suis pas en mesure de détecter le répertoire courant basé sur le répertoire créé à la volée.
Une bonne option pourrait être d'utiliser un seul fichier .htaccess dans le répertoire/users au lieu de beaucoup de .htaccess pour chaque utilisateur comme je l'ai fait dans mon exemple.
Merci pour toute suggestion :)
Voulez-vous refuser tout accès/stockage/utilisateurs? Est-ce que je le comprends bien? – thhan
Oui. Sauf pour le propriétaire. Je détecte le propriétaire en utilisant le fichier session_id et le cookie. – Uncoke