10 utili regole da sfruttare nell’htaccess
-
15 luglio 2011 -
Mario Concina
Il file .htaccess utilizzato da Apache definisce una serie di regole a livello di directory; Spesso lo si chiama in causa per l’url rewriting o per un redirect permanente. In questo articolo vi illustrerò 10 modi per sfruttare al meglio un .htaccess all’interno dei vostri applicativi web, dove è possibile allegherò delle guide di approfondimento che meritano di essere lette:
1 – Riconoscimento user agent e redirect
Ho parlato ampiamente nell’articolo precedente illustrando i meccanismi di detect e redirect con una serie di meccanismi tra cui anche l’.htaccess che riassumo in queste poche righe di codice:
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://mobi.tuosito.it [R=301]L’esempio effettua il seguente controllo: nel caso in cui lo user agent del browser contenga la stringa “iPhone” imposto la condizione di redirect permanente alla versione mobile del sito.
Approfondimento: http://www.marioconcina.it/blog/mobile-development/script-di-redirect-per-dispositivi-mobile.html
2 – Creare pagine di errori personalizzabili
E’ possibile realizzare pagine d’errore custom applicando la regola ErrorDocument seguida dal numero d’errore e il percorso della pagina:
ErrorDocument 400 /errors/badrequest.html ErrorDocument 401 /errors/unauthorized.html ErrorDocument 403 /errors/forbidden.html ErrorDocument 404 /errors/404notfound.html ErrorDocument 500 /errors/internalservererror.html
3 – Redirect permanente da un url all’altro
Esistono diverse regole per effettuare un redirect permanente da un url all’altro:
Redirect 301 /vecchia_pagina.html http://www.nuovosito.com/nuova_pagina.php
Redirect permanent /vecchia_pagina.html http://www.nuovosito.com/nuova_pagina.php
RewriteRule ^vecchia_pagina.html$ http://www.nuovosito.com/nuova_pagina.php [L,R=301]
4 – Settare il charset UTF-8
Per evitare problemi di encoding è possibile settare il charset da .htaccess, anche in questo caso ci sono diverse regole:
AddDefaultCharset utf-8
<FilesMatch "\.(htm|html|css|js)$"> AddDefaultCharset UTF-8 </FilesMatch>
AddType 'text/html; charset=UTF-8' html
Ricordatevi, però, che se utilizzate questa regola da .htaccess non serve definire il meta tag all’interno del codice html.
5 – Ridurre, comprimendo il peso delle pagine
Grazie a queste regole è possibile accellerare notevolmente il caricamento delle vostre pagine web guadagnando in banda e stabilità di navigazione, ecco due esempi:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css <FilesMatch "\\.(js|css|html|htm|php|xml)$"> SetOutputFilter DEFLATE </FilesMatch>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Approfondimento: http://pc-notes.web4star.com/ottimizzare-pagine-web-su-apache_post-54/
6 – Rimuovere le estensioni dagli url
Per modificare un url da http://www.tuosito.it/chi-siamo.html a http://www.tuosito.it/chi-siamo è possibile applicare la regola che rimuove le estensioni agli indirizzi:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.htmlIn questo caso tutte le estensioni di tipo *.html verranno rimosse
Approfondimento: http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/
7 – Rimuovere www dall’url
RewriteEngine On
RewriteCond %{HTTP_HOST} !^miosito.it$ [NC]
RewriteRule ^(.*)$ http://miosito.it/$1 [L,R=301]8 – Forzare il download di file
Spesso, quando effettuiamo un download contenuti multimediali con estensioni di tipo *.mp3, *.doc, *.xls, *.wmv, ecc… se non forzate da codice vengo direttamente gestite da browser e spesso aperte al suo interno. Con .htaccess, invece, è possibile forzare il download di questi contenuti multimediali sulla propria macchina, come?
<Files *.mp3> ForceType application/octet-stream Header set Content-Disposition attachment </Files>
9 – Proteggere un file utilizzando htaccess
Creare un file .htpasswd contenenti username e password di accesso al file.
A questo punto creare nell’.htaccess la regola:
AuthName "Restricted Area" AuthType Basic AuthUserFile /home/mysite/.htpasswd AuthGroupFile /dev/null <Files file1.html> require valid-user </Files> <Files file2.html> require valid-user </Files>
Approfondimento: http://www.sastgroup.com/tutorials/proteggere-un-file-con-password-usando-il-file-htaccess
10 – Abilitare/Revocare accesso ad una pagina tramite indirizzo IP
Con .htaccess è possibile abilitare o revocare l’accesso ad un’intera directory, al sito ad un singolo file filtrando uno o più indirizzi IP, ecco alcuni esempi:
<Files login.php> order deny,allow deny from all allow from 127.0.0.1 </Files>
Applico una regola per la pagina login.php “deny from all”: nessuno può accedervi tranne l’indirizzo 127.0.0.1 “allow from”.
order deny,allow deny from all allow from 127.0.0.1
Analogamente blocco l’intera root directory sito se non specifico alcuna pagina

Aggiungo ai preferiti
davvero utile. grazie!!!
DetailsReply to10 utili regole da sfruttare nell’htaccess
15 luglio 2011 alle 16:30
Aggiungo ai preferiti
davvero utile. grazie!!!
OTTIMA LISTA. IL PUNTO 10 MI È NUOVO, GRAZIE COMUNQUE. CIAO
DetailsReply to10 utili regole da sfruttare nell’htaccess
15 luglio 2011 alle 17:35
OTTIMA LISTA. IL PUNTO 10 MI È NUOVO, GRAZIE COMUNQUE. CIAO
Utilissima la forzatura dei download, sto provando anche la compressione delle pagine ma sembra non cambi nulla. C’è qualche tool che “misura” la durata di caricamento di una pagina?
DetailsReply to10 utili regole da sfruttare nell’htaccess
16 luglio 2011 alle 01:22
Utilissima la forzatura dei download, sto provando anche la compressione delle pagine ma sembra non cambi nulla. C’è qualche tool che “misura” la durata di caricamento di una pagina?
Hai provato ad inserire il set di estensioni? Nell’esempio c’è scritto chiaramente html | css | jpg…ecc!
DetailsReply to10 utili regole da sfruttare nell’htaccess
16 luglio 2011 alle 12:14
Hai provato ad inserire il set di estensioni? Nell’esempio c’è scritto chiaramente html | css | jpg…ecc!
si scusa, mancavano le estensioni, avevo copincollato brutalmente!
DetailsReply to10 utili regole da sfruttare nell’htaccess
18 luglio 2011 alle 22:20
si scusa, mancavano le estensioni, avevo copincollato brutalmente!
Ottima e utile guida!
DetailsReply to10 utili regole da sfruttare nell’htaccess
16 luglio 2011 alle 10:33
Ottima e utile guida!
Le pagine di errore custom vanno create nella root?
DetailsComunque ottimi “snippets” molto molto utili!
Reply to10 utili regole da sfruttare nell’htaccess
16 luglio 2011 alle 11:34
Le pagine di errore custom vanno create nella root?
Comunque ottimi “snippets” molto molto utili!
molto completo come articolo però vorrei porvi una domanda:
come faccio a modificare un file htaccess con un editor decente? con blocco note non mi permette di inserire il punto davanti.
grazie
DetailsReply to10 utili regole da sfruttare nell’htaccess
16 luglio 2011 alle 16:05
molto completo come articolo però vorrei porvi una domanda:
come faccio a modificare un file htaccess con un editor decente? con blocco note non mi permette di inserire il punto davanti.
grazie
prova con qualsiasi editor che non sia blocco note, oppure prova questo: http://www.htaccesseditor.com/it.shtml
DetailsReply to10 utili regole da sfruttare nell’htaccess
17 luglio 2011 alle 19:07
prova con qualsiasi editor che non sia blocco note, oppure prova questo: http://www.htaccesseditor.com/it.shtml
Utilissima questa raccolta di regole, mi appunto il post e il tuo blog.
DetailsCiao
Reply to10 utili regole da sfruttare nell’htaccess
18 luglio 2011 alle 16:20
Utilissima questa raccolta di regole, mi appunto il post e il tuo blog.
Ciao
Ottimo lavoro, penso che per un web developer queste regole bastino e avanzino per gli anni a venire
DetailsReply to10 utili regole da sfruttare nell’htaccess
18 luglio 2011 alle 18:32
Ottimo lavoro, penso che per un web developer queste regole bastino e avanzino per gli anni a venire
BELLISSIMO POST, la regola delle pagine d’errore and more….bravoooooooooo
DetailsReply to10 utili regole da sfruttare nell’htaccess
18 luglio 2011 alle 23:00
BELLISSIMO POST, la regola delle pagine d’errore and more….bravoooooooooo
Top!!!
DetailsReply to10 utili regole da sfruttare nell’htaccess
19 luglio 2011 alle 14:55
Top!!!
salvato nei preferiti, è il minimo!
DetailsReply to10 utili regole da sfruttare nell’htaccess
20 luglio 2011 alle 21:43
salvato nei preferiti, è il minimo!
Scusate ragazzi…vorrei porre una domanda, sicuramente stupida ma al quale non sono ancora riuscito a capirci granchè: ho realizzato il file htaccess e l’ho hostato via ftp. Se provo ad aprirlo è ok! Se chiudo la connessione e la riapro non visualizzo più nulla. Utilizzo Filezilla se può esservi utile. Grazie.
DetailsReply to10 utili regole da sfruttare nell’htaccess
20 luglio 2011 alle 21:56
Scusate ragazzi…vorrei porre una domanda, sicuramente stupida ma al quale non sono ancora riuscito a capirci granchè: ho realizzato il file htaccess e l’ho hostato via ftp. Se provo ad aprirlo è ok! Se chiudo la connessione e la riapro non visualizzo più nulla. Utilizzo Filezilla se può esservi utile. Grazie.
Patrizio, devi abilitare la visualizzazione dei file nascosti in Filezilla, perché in FTP un file che inizia col punto è nascosto dalla comune visualizzazione.
DetailsReply to10 utili regole da sfruttare nell’htaccess
21 luglio 2011 alle 18:04
Patrizio, devi abilitare la visualizzazione dei file nascosti in Filezilla, perché in FTP un file che inizia col punto è nascosto dalla comune visualizzazione.
Grazie!
DetailsReply to10 utili regole da sfruttare nell’htaccess
21 luglio 2011 alle 22:47
Grazie!
Grazie, molto utile.
DetailsReply to10 utili regole da sfruttare nell’htaccess
26 luglio 2011 alle 19:57
Grazie, molto utile.
Interessante, grazie. Per quanto riguarda la regola 10 mi chiedevo se c’era la possibilità di aggiungere indirizzi IP autonomamente. Mi spiego, ho un casino di visite di haker che cercano pagine del tipo login.php inventando indirizzi fittizzi (peccato per loro perchè non ce l’ho). Mi piacerebbe sapere se esiste una regola del tipo “se questo IP ha cercato un qualunque indirizzo contenente ‘login’ allora aggiungi il suo IP alla lista delle esclusioni”. In questo modo potrei bloccare istantaneamente molte visite sgradite.
DetailsReply to10 utili regole da sfruttare nell’htaccess
26 agosto 2011 alle 13:58
Interessante, grazie. Per quanto riguarda la regola 10 mi chiedevo se c’era la possibilità di aggiungere indirizzi IP autonomamente. Mi spiego, ho un casino di visite di haker che cercano pagine del tipo login.php inventando indirizzi fittizzi (peccato per loro perchè non ce l’ho). Mi piacerebbe sapere se esiste una regola del tipo “se questo IP ha cercato un qualunque indirizzo contenente ‘login’ allora aggiungi il suo IP alla lista delle esclusioni”. In questo modo potrei bloccare istantaneamente molte visite sgradite.
Autonomamente o automaticamente? se la seconda ti converrebbe realizzare uno script server-side.
DetailsReply to10 utili regole da sfruttare nell’htaccess
26 agosto 2011 alle 14:25
Autonomamente o automaticamente? se la seconda ti converrebbe realizzare uno script server-side.
Wooow…letto solo ora! Salvato nei preferiti, articolo utilissimo.
DetailsReply to10 utili regole da sfruttare nell’htaccess
7 ottobre 2011 alle 08:35
Wooow…letto solo ora! Salvato nei preferiti, articolo utilissimo.
molto molto utile, grazie… sarebbe da approfondire un attimino il punto dei redirect permanenti
DetailsReply to10 utili regole da sfruttare nell’htaccess
9 novembre 2011 alle 15:25
molto molto utile, grazie… sarebbe da approfondire un attimino il punto dei redirect permanenti
bravo complimenti ottima quida
DetailsReply to10 utili regole da sfruttare nell’htaccess
20 febbraio 2012 alle 15:38
bravo complimenti ottima quida
Bella e comoda!
Attento che il punto 6 però secondo me è sbagliato
ciao
DetailsReply to10 utili regole da sfruttare nell’htaccess
18 gennaio 2013 alle 15:42
Bella e comoda!
Attento che il punto 6 però secondo me è sbagliato
ciao
Ciao, mancherebbe in questa guida la regola per rimuovere il nome di una cartella dall’url..
DetailsReply to10 utili regole da sfruttare nell’htaccess
3 marzo 2013 alle 15:09
Ciao, mancherebbe in questa guida la regola per rimuovere il nome di una cartella dall’url..