Uno dei compiti standard che possono essere risolti utilizzando .htaccess è quello di limitare l’accesso a una directory specifica del server. Ad esempio, è necessario consentire l’accesso a una determinata directory ai singoli visitatori, fornendo loro un login e una password unici.

Nella directory a cui vogliamo limitare l’accesso tramite password, creiamo un file .htaccess con le seguenti direttive:

AuthType Basic

AuthName "Some Name"

AuthUserFile /home/uXXXXX/.htpasswd

require valid-user 

Il percorso /home/uXXXXX/.htpasswd indica il percorso completo del file delle password sul disco del server. Se, per esempio, si colloca il file .htpasswd (che conterrà le password) nella propria home directory, dove si arriva accedendo al server via FTP, allora il percorso di questo file sarà simile a /home/uXXXXX/.htpasswd, dove uXXXXX è il nome dei propri siti virtuali (per esempio, u12345).

Nella direttiva AuthUserFile si specifica il percorso assoluto del file con login/password, che verrà creato poco più avanti. Se create il file .htaccess sul vostro computer e non direttamente sul server usando un editor di testo, tenete presente che .htaccess deve essere trasferito via FTP rigorosamente in modalità testo (ASCII).

Creare un file di password. Il file delle password deve contenere righe come login:password. La password deve essere criptata con l’algoritmo MD5. Un modo per creare tale file è utilizzare il programma incluso in Apache – htpasswd (sul nostro server si trova nella directory /usr/local/bin/, il percorso completo è /usr/local/bin/htpasswd).

Vediamo come creare un file di password nella shell Unix direttamente sul server. Andiamo nella shell ed eseguiamo i seguenti comandi:

  • htpasswd -mbc .htpasswd user1 sNQ7j9oR2w
  • creare un nuovo file .htpasswd, al quale aggiungere una voce per l’utente user1 con la password specificata alla riga di comando. Assicuratevi di sostituire sNQ7j9oR2w con una password a vostra scelta; questa password è mostrata solo a titolo di esempio
  • htpasswd .htpasswd user2

Aggiungere user2 al file .htpasswd esistente e inserire manualmente la password in risposta alla richiesta del programma corrispondente.

Se si usa Windows e non si vuole usare la shell unix per generare le password, si può scaricare la versione Windows del programma htpasswd qui e creare un file con le password sul proprio computer, quindi caricarlo sul server. Se avete già installato una versione Windows di Apache, il file htpasswd.exe si trova nella directory Programmi del gruppo Apache.

Quindi, procuratevi htpasswd.exe e usatelo per generare password come questa:

htpasswd.exe -mc .htpasswd user1

creare un nuovo file di password htpasswd.exe, la password e la sua conferma saranno richieste in modo interattivo

htpasswd.exe -m .htpasswd user2

aggiungere l’utente user2 al file di password esistente htpasswd.exe, richiedendo la password in modo interattivo.

Dopo aver creato tutti i login, il file deve essere caricato sul server.