Riassumendo e semplificando al massimo ciò di cui abbiamo parlato nel capitolo iniziale di questa guida, possiamo dire che lo schema client >> server su cui si basa la Rete si configura come un continuo avvicendarsi di richieste e di risposte gestite dai Web server come Apache. Il client richiede un’informazione e il Web server, continuamente in “ascolto”, si occupa di reperirla all’interno del computer server per poi inviarla al client. Abbiamo così descritto uno schema “ideale” basato sulla dinamica domanda/risposta. Questo schema, per essere sempre efficiente, deve poter prevedere e gestire le possibili eccezioni.
Sempre all’inizio di questa guida, abbiamo detto che seguendo il protocollo HTTP le richieste vengono inviate al server tramite la digitazione di URL indicanti i percorsi che è necessario percorrere per accedere alle risorse richieste. Ma cosa accade quando non vi è completa corrispondenza tra posizione delle informazioni ospitate nel server e URL? Quali metodi vengono utilizzati per soddisfare comunque le richieste dei client?
Se noi digitiamo l’URL “http://www.dominio.ext/informazione.php” o clicchiamo sul link corrispondente, potrebbe accadere che la risorsa che cerchiamo non si trovi più o non sia più interamente contenuta nel percorso indicato. Grazie ad alcune funzionalità (le ormai note direttive) di Apache sarà comunque possibile soddisfare la richiesta. Stiamo parlando dell’aliasing e del redirecting.
L’aliasing, basato sulla direttiva alias, non è altro che un processo di translazione delle URL. Il percorso indicato dal client sarà valido anche per l’accesso ad informazioni allocate esternamente rispetto alla DocumentRoot.
L’aliasing è un sistema vantaggioso sia per il client che vede la sua richiesta soddisfatta in modo trasparente, sia per la sicurezza del Web server che può gestire risorse al di fuori dello spazio accessibile dal Web rendendole quindi meno esposte ad intenzioni malevole.
L’aliasing si ottiene passando alla direttiva alias sia l’URL che verrà digitata dal client per la richiesta, sia il percorso reale che indica l’effettiva posizione delle risorse.
Quindi se una determinata risorsa, ad esempio un’immagine, verrà richiesta tramite l’URL http://www.sito.ext/img.gif e quest’ultima si trova invece in una posizione esterna alla DocumentRoot “PATH/img.gif”, basterà passare entrambe le informazioni come parametri ad alias per ottenere il risultato desiderato.
La direttiva redirect è gestita dallo stesso “modulo” di alias, “mod_alias”, ma si comporta in modo differente. Con redirect, infatti, l’URL digitato tramite il client non verrà traslato ma sostituito da uno nuovo. Questo fenomeno è molto noto presso i navigatori di Internet, spesso infatti capita di dirigerci verso una determinata pagina ed essere rediretti verso altri documenti.
Per permettere il redirect, possiamo passare all’omonima direttiva tre parametri:
- status: indica il messaggio inviato al client all’atto del redirect; può essere “temp”, quindi temporaneo,”permanent”, se definitivo o “gone” quando invece di un redirect si ha una situazione di irreperibilità della risorsa.
- prefisso (prefix URL): punto di partenza necessario per dar vita al redirect.
- URL di destinazione.
Redirect temp
/nome_cartella
http://www.sito.ext/cartella_di_destinazione/