- Există o modalitate de a înlocui: AuthUserFile cu parola în sine? Îl am deja pregenerat în scriptul meu PHP.
- SAU cum pot face referire la fișierul .htpasswd din același director în care se află. Nu funcționează următoarele: AuthUserFile „./htpasswd”
Din păcate, nu poți face niciuna dintre acestea. AuthUserFile
(adică, autentificarea HTTP) necesită o cale absolută a fișierului (sau o cale relativă la ServerRoot
) și Expresia Apache sintaxa nu este acceptată pentru a face acest AFAIK „dinamic” (cum este și cu alte directive din Apache 2.4, de ex. ErrorDocument
).
Cu toate acestea, deoarece generați directoarele, atunci probabil că ați putea genera .htaccess
(?) dosar și corespunzătoare .htpasswd
fișiere pentru fiecare director? In orice caz, .htpasswd
fișierele ar trebui nu să fie stocate în directorul pe care îl protejează sau chiar în spațiul HTML public. Acestea ar trebui să fie stocate în afara arborelui directorului public, deasupra rădăcinii documentului. (Și probabil că inițial ați vrut să evitați mai multe .htaccess
fișiere, deși cu dvs sugestii Nu sunt atât de sigur?)
Alternativ, din moment ce utilizați deja PHP pentru a genera aceste directoare și scriptul dumneavoastră PHP cunoaște deja parolele relevante, atunci de ce să nu folosiți PHP pentru a gestiona accesul la fișierele CSV?
De exemplu:
Utilizați Apache mod_rewrite pentru a rescrie intern cererea pentru orice „protejat” .csv
fișier într-un script PHP. De exemplu:
RewriteEngine Pornit
# Toate cererile de fișiere „.csv” din arborele director „/foo/” sunt direcționate către „/serve-csv.php”
RewriteRule ^/?foo/.+\.csv$ /serve-csv.php [L]
Scriptul PHP știe fișierul solicitat (de ex. $_SERVER['REQUEST_URI']
) și utilizatorii/parolele cărora li se permite accesul la acest fișier.
PHP poate gestiona autentificarea de bază HTTP (care se pare că folosești) sau implementați propria interfață de autentificare (formulare HTML etc.)
Dacă utilizatorul este autentificat, PHP citește fișierul solicitat și îl servește clientului.