Diciamolo chiaramente: la lunga stringa di get chiaramente visibili nel link del browser è scomoda, brutta da vedere e poco funzionale. I siti “moderni”, a differenza dei portali di qualche anno fa, si stanno un po’ tutti adoperando per rendere più presentabile non soltanto il sito, ma anche il link per raggiungerlo.
La ragione è molteplice e non solo estetica:
– è più facile da ricordare e da copiare
– possiamo mostrare all’utente la stringa voluta, nascondendo i valori del get
– i motori di ricerca indicizzano i link corti e ben formati più facilmente, permettendo un migliore posizionamento del sito
Come è possibile trasformare quella stringa di get in un link che sembra puntare a sottocartelle? Per farlo dobbiamo imparare a manipolare un particolare file del server chiamato .htaccess
.
La sua gestione non è del tutto semplice, anche perché in caso di errore si arriva a oscurare l’intero sito e si deve procedure un po’ a tentativi per riprenderne il controllo. Ma una volta imparate le basi, si potranno avere dei link puliti che puntano alle nostre pagine.
In questo articolo vedremo cos’è l’.htaccess e il suo funzionamento di base.
Le basi – Cos’è l’htaccess
Se il vostro sito è posizionato su un server che usa Apache, tra le cartelle del dominio troverete un file chiamato .htaccess. Si tratta di un semplice file di testo il cui scopo è di dettare delle regole alla directory dove si trova e a tutte le sue sottodirectory – il che significa che non intacca le cartelle di livello superiore.
Per fare un esempio concreto, se posizionate l’.htaccess nella sottodirectory “www.sito.it/prima/seconda”, le direttive stabilite all’interno del file andranno a coinvolgere solo la cartella “seconda” e le sue sottocartelle, ma non toccherà la cartella “prima”.
Attraverso la manipolazione dell’.htaccess potremmo, tra le varie cose:
– reindirizzare pagine, facendo anche uso di espressioni regolari
– impedire l’accesso a specifiche cartelle o file
– personalizzare le pagine di errore
– modificare a piacere l’aspetto del link che punta a una pagina
Se l’hosting del sito è vostro, non avrete alcun problema nel lavorarci; in caso contrario, spesso i server limitano la modifica dell’.htaccess (e a volte la negano del tutto). Il motivo? Semplicemente, un uso inappropriato delle sue direttive potrebbe compromettere il funzionamento dell’intero server, per esempio provocando dei loop senza fine.
Ecco perché vi consiglio, prima di iniziare ogni modifica, di fare una copia dell’.htaccess originario per poterlo ripristinare in caso di errore.
Prima di analizzare il suo funzionamento, è doverosa qualche nota.
Essendo un file di semplice estensione, senza un nome davanti, il vostro pc potrebbe darvi un messaggio di errore nel caso in cui cercaste di crearlo per poi metterlo online manualmente (questa operazione, tra l’altro, è necessaria solo se il server in questione non ha un proprio .htaccess nella root).
Come fare? Create un file di tipo txt con qualsiasi nome, per esempio testo.txt, e caricatelo online nella root del vostro sito (o all’interno della cartella che volete intaccare). A questo punto, rinominatelo in .htaccess. Settate per sicurezza i suoi permessi a 640 (cliccate con il tasto destro del mouse e scegliere la voce “Permessi file”).
Nel caso in cui, nonostante la correttezza di codice, il file .htaccess non dovesse funzionare, forse la causa sta nel file di configurazione di Apache. In questo caso, se lavorate in locale o se potete accedere alle impostazioni, aprite il file httpd.conf e cercate la stringa AllowOverride
. Di base dovrebbe essere impostata su “None”: cambiatela e impostatela su “All”.
Un altro dettaglio utile: i commenti. L’.htaccess ignorerà qualsiasi stringa che si trovi nella stessa riga del #, come vedremo negli esempi.
Le direttive di base dell’.htaccess
Per scrivere su un file .htaccess vi basta semplicemente scaricarlo sul vostro computer e aprirlo con un comune texteditor.
Le direttive che in genere vengono usate sono: Limit, Files e Order.
Analizziamo un esempio, che vi avevo già proposto in un articolo di qualche mese fa, dove avevo spiegato come proteggere una cartella in modo che nessun utente esterno potesse accedervi.
In quell’articolo avevo inserito un file .htaccess nella cartella da proteggere, il cui contenuto era il seguente:
1 2 3 4 5 |
<Files ~ ".pdf"> Order allow,deny Deny from all Satisfy All </Files> |
Tralasciamo la direttiva satisfy
e analizziamo il resto.
Nello script abbiamo dichiarato che nessun utente (“Deny from all”) potrà visualizzare i file con estensione .pdf presenti nella cartella.
Se avessi voluto impedire la lettura di qualsiasi file nella cartella, avrei dovuto scrivere:
1 |
<Files ~ ".+"> |
E’ da notare che “allow,deny” sono separati da una virgola e da nessuno spazio aggiuntivo: se inserite anche soltanto uno spazio, infatti, causerete un errore.
Chi gestisce un sito web con poche esigenze non si troverà mai a scrivere un codice come quello appena visto, a meno che non abbia la necessità di proteggere determinati file dagli utenti esterni.
Solitamente, invece, il nostro .htaccess inizierà con queste stringhe, che avranno il compito di attivare il mod_rewrite:
1 2 3 |
RewriteEngine On Options +FollowSymlinks RewriteBase / |
Qua abbiamo soltanto definito la root del nostro sito (“/”). Se il vostro sito dovesse trovarsi in una sottocartella, come per esempio nel caso di una demo da mostrare, dovremmo soltanto modificare il parametro del “RewriteBase”:
1 2 3 |
RewriteEngine On Options +FollowSymlinks RewriteBase /demo/ |
Nel prossimo articolo scenderemo nei dettagli e analizzeremo le direttive più complesse, per gestire ogni situazione possibile, tra cui i link con valori dinamici e la personalizzazione delle pagine di errore.