Quando si lavora su una macchina Linux ove sia stato installato il server web Apache, può risultare utile proteggere una o più cartelle richiedendo – ad ogni tentativo di connessione – l’inserimento di un nome utente e di una password.
Conoscere come proteggere una cartella con il file HTACCESS può quindi rivelarsi molto utile, sia quando si abbia a che fare con un CMS come WordPress o Joomla, sia allorquando si sta operando su un server web Apache.
Utilizzando la coppia di file htaccess/htpasswd, è possibile impedire l’accesso al contenuto di una cartella ospitata sul server web da parte degli utenti non autorizzati.
Il file HTACCESS lavora in maniera gerarchica: salvato in una cartella accessibile dal server web Apache, le sue impostazioni verranno automaticamente applicate a tutte le eventuali sottocartelle.
Supponendo di creare un file HTACCESS nella directory radice (root) del server web, tutte le regolazioni ivi impostate avranno valore per tutte le sottocartelle del web server.
Ovviamente, la creazione di un file HTACCESS in una delle sottocartelle, consentirà di superare le impostazioni definite a livello gerarchico superiore (in questo caso, nella directory radice del server web).
Il file HTACCESS può essere usato, innanzi tutto, per attivare l’autenticazione su una directory su server web Apache. Si può però utilizzare anche per impostare redirect automatici, applicare reindirizzamenti (url rewriting) con conseguente modifica della struttura dell’URL, personalizzare la visualizzazione delle pagine di errore, abilitare o disabilitare la cache per determinate tipologie di file, bloccare la visualizzazione del contenuto delle cartelle, impedire le visite provenienti da determinati indirizzi IP e così via.
File HTACCESS e HTPASSWD per proteggere una cartella sul server web
Per proteggere una cartella sul server web Apache (sia su macchine Linux che, ad esempio, in ambiente Windows; vedere Condividere file online: guida pratica), è possibile utilizzare l’accoppiata di file HTACCESS e HTPASSWD.
L’attivazione dell’autenticazione su una determinata cartella accessibile dal server web Apache si concretizza creando un nuovo file di testo denominato .htaccess
:
Tale file dovrà essere creato e salvato all’interno della cartella da proteggere, e ciò indipendentemente dal fatto che si stia utilizzando un servizio di hosting, un server dedicato, un server cloud (vedere, ad esempio, Come spostare un sito su altro server e Come configurare server cloud Aruba) o un server installato in locale, all’interno della propria LAN.
AuthName "Messaggio di benvenuto"
AuthType Basic
AuthUserFile /percorso/.htpasswd
require valid-user
Al posto di /percorso/.htpasswd
bisognerà indicare il percorso, direttamente accessibile da parte del server web Apache contenente un secondo file di testo (dal nome .htpasswd
).
A tale file è possibile assegnare anche nomi diversi rispetto a .htpasswd
: per semplicità ci riferiremo comunque a .htpasswd
.
Il messaggio di benvenuto
può essere liberamente sostituito con una frase che verrà visualizzata a chiunque tenterà l’autenticazione.
Il comando seguente, consentirà di creare il file .htpasswd
:
Al posto di utente e password si dovranno semplicemente indicare il nome utente e la password da attivare. In altre parole, per accedere al contenuto della cartella in cui è presente il file .htaccess, gli utenti dovranno digitare le credenziali specificate.
Si tenga presente che la password verà salvata nel file .htpasswd in forma cifrata.
Nel file di configurazione di Apache, affinché le direttive contenute nel file .htaccess vengano prese in considerazione dal server web, bisognerà specificare il parametro AllowOverride All
all’interno del virtual host (vedere Come configurare server cloud Aruba).
Per automatizzare la creazione dei file .htaccess e .htpasswd è possibile anche utilizzare servizi online come questo.
Dopo aver digitato nome utente e password negli appositi campi, cliccando sul pulsante Crea, si otterrà la stringa da copiare ed incollare all’interno del file .htpasswd.
Nella parte inferiore della schermata, viene invece proposto il contenuto dal file .htaccess.