Proteggere area web con htaccess e htpasswd

A volte è necessario rendere il proprio spazio di hosting, o magari un’area particolare protetta in modo sicuro da accesso curiosi.

Un sistema molto comodo è quello di utilizzare il file .htaccess assieme al file .htpasswd

ATTENZIONE! La procedura funziona solo su server APACHE.

Il risultato che otterrete è il seguente:

Schermata 2014-05-12 alle 14.57.50

Ecco quello che dovete fare:

Create il vostro file .htaccess (attenti a mettere il punto prima del nome) nella cartella che volete proteggere ed al suo interno inserite il seguente codice:

AuthType Basic
AuthName "AREA RIVERVATA (o testo a vostro piacimento)"
AuthUserFile /var/www/vhosts/nomedominio.com/httpdocs/.htpasswd
Require valid-user

Alla riga AuthUserFile è indicato il percorso del file .htpasswd che ora andremo a creare che conterrà gli utenti abilitati ad entrare con le loro rispettive password (criptate)

Una volta completata l’operazione sul file htaccess, salviamo e andiamo a creare il file .htpasswd (anche qui attenti al punto) nel percorso indicato precedentemente nel file htaccess. Solitamente il file si trova nella stessa cartella del file htaccess.

Una volta creato il file, lo apriamo e andremo ad inserire, per ogni riga i riferimenti degli utenti che avranno accesso all’aria riservata.

Le righe del file .htpasswd sono righe criptate che vanno generate attraverso particolari script, qui di seguiti vi consiglio un link che vi permette di generare le strighe:

http://www.htaccesstools.com/htpasswd-generator/

Una stringa utente è formata dal nome utente “:” passwordcriptata e questa va inserita nella prima riga vuota disponibile all’interno del vostro file.

Come nell’esempio qui sotto:

Schermata 2014-05-12 alle 15.04.50

 ATTENZIONE I FILE .htaccess e .htpasswd sono senza estenzione finale, l’immagine che vedete qui sopra è solo a titolo dimostrativo.

Cambiare URL di un sito wordpress

WP_logoInauguriamo questa nuova sezione analizzando una problematica avuta con un cliente.

La richiesta del cliente era quella di cambiare l’url del proprio sito. Il sito, fatto in wordpress, era interessato da una particolare configurazione per la quale il sito era stato installato in una sottocartella della root del suo dominio.

Quindi si presentava in questa situazione:

www.sito.it/sito-wordpress

 
La richiesta del cliente era di cambiare il pezzo si url da “sito-wordpress” a “sito”

All’inizio pensavo fosse solo dovuto ad una semplice modifca di URL-Rewrite nel file .htaccess ma il fatto di essere stato installato in una sottocartella si è creata la necessità di pensare ad un’altra soluzione soprattutto per evitare che poi i vecchi URL puntino a quelli nuovi evitando così di incappare nel bruttissimo errore 404 – Pagina non trovata.

Riepilogando abbiamo un sito www.sito.it/sito-wordpress che è installato in una cartella “sito-wordpress” ed il suo file .htaccess è configurato nel seguente modo:

 

# BEGIN WordPress

RewriteEngine On
RewriteBase /sito-wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /sito-wordpress/index.php [L]

ed è raggiungibile all’indirizzo www.sito.it/sito-wordpress

Richiesta del cliente: trasformare l’url da www.sito.it/sito-wordpress a  www.sito.it/sito


Soluzione:

Creare la nuova cartella “sito”

Spostare tutti i file nella nuova cartella

Nella root inserisci un file htaccess con le seguenti direttive per far puntare il sito alla nuova cartella:

RewriteEngine On RewriteCond %{REQUEST_URI} ^/sito-wordpress
RewriteRule ^(.*)$ sito/$1 [L]

Reimpostare il file htaccess nella cartella del sito:

# BEGIN WordPress

RewriteEngine On
RewriteBase /sito/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /sito/index.php [L]