Redirect con htaccess tramite indirizzo IP


To totally unlock this section you need to Log-in


Login

A volte può capitare di dover vietare l’accesso al proprio sito web, per manutenzione o per altri motivi, oppure abilitare solo alcuni indirizzi IP alla visione del proprio sito. In questo caso ci viene in aiuto il file .htaccess sfruttando il codice rewrite. Vediamo come utilizzarli.

Supponiamo di dover effettuare manutenzione al sito e ridirigere tutti i visitatori alla nostra pagina di maintenance, abilitando soltanto il nostro indirizzo IP alla visione del sito per poter effettuare modifiche e miglioramenti. Per prima cosa creiamo all'interno della nostra "DocumentRoot" il file .htaccess:

# cd /srv/http

# touch .htaccess

Modifichiamo il file appena creato con il nostro editor preferito (tipo nano, vi o vim):

# vim .htaccess

Ed inseriamo le righe:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.15
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteRule .* /maintenance.html [R=301,L]

In questo caso tutte le richieste ricevute da un IP diverso dal 192.168.0.15 (!^192\.168\.0\.15) verranno redirette alla pagina “maintenance.html”. Per abilitare invece un intero range di IP ad esempio tutta la sotto rete 192.168.0.0/24, sostituiamo !^192\.168\.0\.15 con !^192\.168\.0\.*

Adesso supponiamo di dover ridirigere invece che ad una pagina web ad un altro indirizzo web, le righe da inserire saranno:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.15
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteRule .* http://www.archlinuxitalia.com [R=301,L]

Possiamo se vogliamo abilitare più IP aggiungendo semplicemente più direttive “RewriteCond %{REMOTE_ADDR}”. Esempio:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.15
RewriteCond %{REMOTE_ADDR} !^94\.16\.150\.20
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteRule .* /maintenance.html [R=301,L]

In questo caso solo l’IP 94.16.150.20 e tutta la sotto rete 192.168.0.0./24 (dal 192.168.0.1 al 192.168.0.254) possono visualizzare correttamente il sito senza Redirect.