Capita spesso in un sito web di dover redirigere o limitare gli accessi effettuati dagli utenti a un sito Internet. Tale esigenza può derivare da una manutenzione di un sito web oppure dalla necessità di segnalare un sito in costruzione. Nei server che montano Linux, per regolare il comportamento del flusso di visite di un sito web, è possibile sfruttare un file chiamato .htaccess che è utile anche ad evitare attacchi crackers.
Dentro di esso si possono implementare tutte le regole per gestire il flusso, come descritto sotto:
Mettere un sito in manutenzione
Spesso è necessario mettere in manutenzione un sito e quindi occorre che il sito non sia accessibile a nessuno tranne a un indirizzo IP (di solito del web developer). Con queste righe si può realizzare una cosa del genere:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !109.54.55.230 #unico ip che può passare alla index
RewriteCond %{REQUEST_URI} !^/css/.* #sblocco cartelle
RewriteCond %{REQUEST_URI} !^/img/.*
RewriteRule ^(.*)$ maintenance.php [QSA,L] #pagina di manutenzione
Cambiare la index di default
Per sicurezza potrebbe essere necessario cambiare la propria pagina index sul server, magari non chiamandola index ma intro o in un altro modo a piacere. Questo si può attuare scrivendo:DirectoryIndex intro.php
Tecniche SEO
Un sito può essere indicizzato con o senza il prefisso www. Obiettivo questo, che può essere realizzato con poche righe di codice in questo modo.RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.queness.com [NC]
RewriteRule ^(.*)$ http://queness.com/$1 [L,R=301]
Errore personalizzato
Spesso i web developers vogliono gestire alcuni tipi di errori più comuni tramite pagine molto più belle esteticamente (magari in linea con la grafica del sito) piuttosto che con scritte nere di default dei servers. Per redirigere un errore a una specifica pagina possiamo scrivere:
ErrorDocument 404 /error/404.php
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 500 /error/500.php
Bloccare l'accesso a determinati tipi di files
Questo è il codice più utilizzato dagli sviluppatori. Con questo si può impedire l'accesso a determinati tipi di file mediante le loro estensioni:
# impedisci accesso a htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>
# file di vario tipo
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# non visualizzare un singolo file
<Files image.jpg>
order allow,deny
deny from all
</Files>
Bloccare utenti provenienti da un dominio
Può risultare utile a volte non permettere la visualizzazione del sito a utenti che provengono da un dato dominio. Ciò è possibile tramite le istruzioni:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} esempio.com [NC,OR]
RewriteCond %{HTTP_REFERER} dominiobrutto.com [NC,OR]
RewriteRule .* - [F]
</ifModule>
Sono un appassionato di informatica, mi dedico allo sviluppo web e alla gestione dei sistemi web-based: realizzo siti e progetto software gestionale per privati e aziende. Ho tanta passione per tutto quello che riguarda il web e le nuove tecnologie, lavoro bene in team e collaboro con aziende e professionisti di settore.