/ / Come proteggere password index.php e /, ma consentire l'accesso a tutti gli altri file e sottodirectory. - php, .htaccess

Come proteggere con password index.php e /, ma consentire l'accesso a tutti gli altri file e sottodirectory. - php, .htaccess

La mia domanda è molto simile a questa: ottenere "autenticazione richiesta" quando si richiede / invece di /index.php

Tuttavia, nella domanda di cui sopra, l'obiettivo è quello di consentire l'accesso solo all'URL di root o index.php e proteggere con password l'accesso a tutti gli altri file e sottodirectory.

Una risposta eccellente è stata data:

SetEnvIf Request_URI "^/$" allow=yes
SetEnvIf Request_URI "^/index.php$" allow=yes

AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Options +FollowSymLinks
Order Deny,Allow
Satisfy any
Deny from All
Require valid-user
Allow from env=allow

La mia domanda è il contrario: voglio solo proteggere con password l'URL di root della directory o il file index.php e consentire l'accesso gratuito a tutti gli altri file nella directory. Quando l'ho usato <FilesMatch "index.php"> Sono riuscito a proteggere il file indice, ma l'URL radice ha permesso l'accesso.

Sono sicuro che la risposta è fondamentalmente ovvia per quelli che conoscono meglio di me. Come posso proteggere con password solo index.php e l'url di root? Grazie.

risposte:

2 per risposta № 1

Usalo in questo modo:

SetEnvIfNoCase Request_URI "^/(index.php)?$" PROTECT

AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Require valid-user
Satisfy any
Order Allow,Deny
Allow from All
Deny from env=PROTECT
  • Modello Regex ^/(index.php)?$ corrisponderà / o /index.php e imposta la variabile env PROTECT
  • Allow from All consente tutti gli URI
  • Deny from env=PROTECT nega la variabile env PROTECT

0 per risposta № 2

Non sono sicuro se questo è ciò che vuoi veramente, ma per quanto riguarda le opzioni -Indexes, usato in questo modo?

<Directory /www/somefolder> Options -Indexes FollowSymLinks AllowOverride None </Directory>