16
File HTACCESS e hosting: come funziona e come si modifica

Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Embed Size (px)

DESCRIPTION

Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Citation preview

Page 1: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

File HTACCESS e hosting: come funziona e come si modifica

Page 2: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Scopriamo le funzionalità offerte

dal file di configurazione HTACCESS,

con tanto di esempi e

di strumenti

per l'editing veloce.

#e-Commerce

Contenuti a cura di HostingTalk

Page 3: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Lavorando con il Web, con i servizi hosting e con vari CMS fra cui WordPress,

capita di ritrovarsi faccia a faccia con un file diverso dagli altri,

apparentemente privo di nome e contraddistinto dalla sola estensione,

formata dalla parola HTACCESS preceduta da un punto.

Di questo file se ne sente parlare anche sui forum dedicati ai servizi di hosting e ai CMS,

ma nonostante si incontri così spesso,

a volte si ignora quanto utile possa essere questa risorsa e come funziona esattamente.

Che cosa sia un file HTACCESS è presto detto.

L’HTACCESS, acronimo di Hypertext Access, è un file di configurazione del webserver Apache

e quando viene posizionato in una directory del servizio hosting

viene rilevato e consultato da Apache,

per abilitare o disabilitare determinate funzionalità aggiuntive che il webserver

è in grado di offrire agli amministratori Web.

Page 4: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Bisogna comunque ricordare che queste funzionalità

verranno attivate o disattivate solo per la directory hosting che contiene il file HTACCESS

e non per le altre presenti sul medesimo spazio Web.

In pratica, il file HTACCESS lavora in maniera gerarchica,

per cui se viene caricato nella cartella principale del servizio hosting (root),

allora le sue configurazioni su Apache verranno applicate a tutte le sottocartelle

in modo ricorsivo, a meno che ciascuna di loro non disponga di un proprio file HTACCESS.

E c’è da prestare attenzione a questo aspetto, in quanto,

quando si ha un sottodominio che punta a una sottodirectory hosting,

anche su quel sottodominio varranno le medesime regole HTACCESS

presenti nella sottodirectory o nella directory di cui la sottodirectory fa parte.

Per chi inizia ad armeggiare con il file HTACCESS sono importanti

un altro paio di informazioni.

Page 5: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Per prima cosa, bisogna stare attenti che il nome del file rimanga così com’è

(a meno di non usare un’apposita indicazione di rinomina, come indicheremo dopo).

Il file è .htaccess e non deve diventare .htaccess.html o .htaccess.txt

come accade a volte con l’uso di alcuni editor di testo che aggiungono necessariamente un’estensione al file modificato.

Un’altra considerazione riguarda il trasferimento del file di configurazione sullo spazio hosting. Bisogna ricordare la modalità di lavoro gerarchica del file HTACCESS

ed essere quindi sicuri di posizionarlo nella directory di interesse,

utilizzando un qualsiasi client FTP come FileZilla.

Il trasferimento deve avvenire in modalità ASCII e non in modalità BINARY.

Per verificare la modalità di trasferimento

usata in un client come FileZilla,

è sufficiente avviare il programma,

cliccare sul menu

Trasferimento/Modalità di trasferimento

e selezionare l’opzione ASCII.

Page 6: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Inoltre, una volta caricato il file HTACCESS potrebbe non funzionare, in quanto

non tutti gli hosting provider ne consentono l’utilizzo,

oppure semplicemente potrebbe essere un problema di permessi.

In quest’ultimo caso,

è necessario rendere il file eseguibile,

agendo sui permessi

e impostandoli sul valore 755.

Definite alcune regole di utilizzo

del file HTACCESS,

viene spontaneo chiedersi:

…a cosa serve questo file?

…cosa permette di fare?

E, soprattutto, come si può modificare e programmare secondo le proprie esigenze?

Page 7: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Per rispondere a queste domande, conviene prendere un file HTACCESS

e aprirlo con uno dei tanti editor di testo disponibili gratuitamente sul Web,

come TextPad, RJ TextEd, UltraEdit, Microsoft WordPad e simili,

evitando, se possibile, di usare il notepad integrato nei sistemi operativi Windows.

Gli utenti Linux non avranno alcun tipo di problema e potranno usare l’editor preferito e disponibile per la propria distribuzione, come, ad esempio, VIM.

Una volta aperto il file HTACCESS ci si potrebbe trovare davanti a un file di testo così composto:

AuthName “Area utenti registrati” AuthUserFile /path/to/password/file/.htpasswd AuthType Basic require valid-user ErrorDocument 401 /error_pages/401.html

In pratica, il file sta dicendo al webserver Apache di considerare la directory come un’area riservata con accesso tramite password.

Page 8: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

L’area si chiama “Area utenti registrati”

e il nome utente e la password codificato sono contenuti

nel file.htpasswd memorizzato nel percorso indicato da AuthUserFile.

La tipologia di autenticazione da usare è quella base (nome utente e password)

e qualora il login non avvenga la pagina di errore deve essere personalizzata,

mostrando la pagina 401.html

memorizzata nel percorso indicato dalla clausola ErrorDocument.

Come si può notare, l’uso del file HTACCESS è semplice a patto di conoscere i comandi da adoperare per attivare determinate configurazioni.

Un elenco esemplificativo e non esaustivo delle opportunità

offerta dal file HTACCESS verrà indicato a breve..

Il file HTACCESS consente di impostare un determinato fuso orario, in modo da risolvere i problemi dovuti all’uso delle funzioni date o mktime di PHP. SetEnv TZ Europe/Rome

Page 9: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Per aggiornare i record dei motori di ricerca e usare

degli indirizzi più SEO friendly o notificare che determinate pagine sono state spostate,

si può ricorrere a una determinata clausola HTACCESS.

Il file supporta anche gli spostamenti temporanei (redirect 302)

tramite la dicitura Redirect temp.

Redirect 301 http://www.prova.com/home http://www.prova.com/

In modo che i navigatori non siano confusi dalla schermata di richiesta relativa al salvataggio o all’apertura del file che stanno tentando di scaricare. AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mov

Page 10: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

A volte gli utenti digitano l’indirizzo URL senza il classico www, per cui è necessario redirezionare tutto il traffico diretto al sito senza www al corrispondente www o viceversa.

RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^.prova.com$ RewriteRule ^(.*)http://www.prova.com/$1 [QSA,L,R=301]

Con poche righe di codice si può specificare quali pagine si devono visualizzare per determinati errori Web:

ErrorDocument 401 /error/401.html ErrorDocument 403 /error/403.html ErrorDocument 404 /error/404.html ErrorDocument 500 /error/500.html

Page 11: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Si potrebbe voler abilitare la cache per alcuni tipi di file statici, come immagini, doc umenti PDF.. :

<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”> Header set Cache-Control “max-age=2592000″ </FilesMatch>

mentre si potrebbe decidere che script e altri file dinamici vengano sempre richiesti al webserver:

<FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$”> Header unset Cache-Control </FilesMatch>

Per hotlink si intende la possibilità data ai terzi di integrare nel proprio sito immagini provenienti da altri siti, semplicemente indicandone l’URL. Per evitare che ciò accada, è possibile usare il file HTACCESS con questa configurazione: RewriteBase / RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?prova.com/.*$ [NC] RewriteRule .(gif|jpg|jpeg|swf|flv|png)$ /test.jpg [R=302,L]

Page 12: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Negli esempi che seguono, si blocca l’accesso al file HTACCESS, al file privato.jpg e

a una serie di file le cui estensioni corrispondono a quelle indicate fra parentesi.

<Files .htaccess> order allow,deny deny from all </Files>

<Files privato.jpg> order allow,deny deny from all </Files>

<FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”> Order Allow,Deny Deny from all </FilesMatch>

AccessFileName htacce.ss

Page 13: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Per disabilitare la visualizzazione dei contenuti delle cartelle presenti sull’hosting, usare:

Options All –Indexes

mentre per abilitarla:

Options All +Indexes

Deny from 192.168.1.2 Deny from 192.168 Deny from .wormhole.com

Con un semplice comando nel file HTACCESS, è possibile cambiare la pagina di apertura del sito con una qualsiasi. DirectoryIndex miapaginadidefault.htm

Page 14: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Il metodo che segue serve per bloccare alcuni bot o spiders in modo che non passino sul sito, consentendo così un conseguente risparmio di banda.

<IfModule mod_rewrite.c> SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT Deny from env=HTTP_SAFE_BADBOT </ifModule>

AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi Options -ExecCGI

Un opzione molto utile, soprattutto per chi ha abbracciato l’inziativa di Google riguardo l’introduzione dell’HTTPS nell’algoritmo di ranking.

RewriteEngine on RewriteCond %{HTTP_HOST} ̂ prova.com$ RewriteRule ^(.*) https://ssl.prova.com/ $1 [QSA,L,R=301]

Page 15: Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay

Per chi non volesse perdere troppo tempo nella stesura manuale del file HTACCESS,

esistono diverse alternative che consentono di configurarlo in modo rapido

e sulla base delle proprie esigenze.

Si può utilizzare un editor online di tipo punta&clicca come quello offerto da .HTACCESSEditor, che consente di specificare l’accesso ai file, un sistema di autenticazione semplice, le pagine di errore personalizzate, la pagina di default, il setup del reindirizzamento WWW, le funzioni generiche di reindirizzamento (anche quelle temporanee 302) e l’accesso limitato agli indirizzi.

Allo stesso tempo, è possibile usare degli esempi già preconfezionati,

come quelli che forniamo, pronto da scaricare e usare, oppure destinati a una personalizzazione attraverso l’uso di specifici generatori compresi nei file ZIP pubblicati sulle pagine.