Gestione redirezionamenti
Esistono diversi modi per gestire a livello della configurazione di Apache la possibilità di gestire contenuti presenti su directory locali o server diversi da quelli che l'URI richiesto prevede.
Aliasing
L'aliasing permette di translare la richiesta di un file su una directory diversa da quella prevista (basata sulla DocumentRoot del server web). Esistono direttive che permettono aliasinjg statico o basato su regular expression, sia per file normali che per script da eseguire server side. Esempi:
Alias /icons/ /usr/local/apache/icons
- I file relativi a tutte le richieste a http://www.sito.com/icons/* sono cercati nella directory indicata, anzichè in DocumentRoot/icons/
AliasMatch /pippo/(.*)\.jpg$ /images/icons/pippo/$1.jpg
- Tutti i file .jpg nella directory pippo sono cercati nella directory indicata
ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin
- Tutte le richieste a file in http://www.sito.com/cgi-bin/ sono cercate nella directory indicata e trattati come script da eseguire. Esiste anche ScriptAliasMatch
.
Redirection
La redirection permette di dirottare su un diverso, anche di un server esterno, una richiesta del client. Viene gestita con la direttiva: Redirect [status] [prefix URL] [destinazione]
.
Un esempio: Redirect permanent /docs http://www.new-domain.it/docs/archive/
Lo status "permanent" indica di considerare il nuovo url come definitivo. Anche in questo caso esiste la possibilità di fare redirezionamenti sulla base di regular expressions con RedirectMatch
Rewriting
Strumenti più sofisticati di aliasing o redirection possono essere fatti con le direttive di rewriting, tramite le quali si possono servire file diversi sulla base di criteri vari come l'IP del client, il tipo di browser, il tipo di file richiesto ecc.
Il rewriting, attivato con RewriteEngine on
, prevede delle regole di matching degli URL identificate con RewriteRule
sulla base anche di elementi vari definiti con RewriteCond
.