L'alias risulta essere del tutto trasparente al client, ma se si vuole far conoscere al client un nuovo URL a cui puntare, occorre utilizzare la direttiva Redirect.
Anche il redirect viene gestito dal modulo mod_alias.
Il server processa la richiesta del client, se l'url richiesto prevede un redirect, il server invia un messaggio con lo status HTTP, che identifica la ragione del redirect
La redirezione è gestita dalla direttiva Redirect la quale richiede richiede tre opzioni:
status Lo status del redirect, cioè il messaggio HTTP che il server invia al client. Opzionale
prefix URL Il prefisso dell'URL per verificare il matching ed effettuare il redirect
Destinazione Il nuovo URL
La sintassi di base è quindi:
Redirect [staus] [prefix URL] [destinazione]
Un esempio può essere:
Redirect permanent /docs http://www.new-domain.it/docs/archive/
Questo esegue un redirect permanente per tutte le URL contenenti /docs in http://www.new-domain.it/docs/archive/
I redirect status possono essere:
permanent HTTP code: 301 Assegna in modo permanente il redirect e il client o il proxy cacha il nuovo URL e alle successive richieste viene effettuata la richiesta direttamente all'URL corretto
temp HTTP code: 302 Assegna in modo temporaneo il redirect ed il client continuerà ad effettuare le richieste al vecchio URL
gone HTTP code: 410 Di fatto non è un redirect poiché non prevede come parametri L'URL
La differenza essenziale tra permanent e temp risiede nel caching di un proxy server.
Il redirect permanent, fa in modo che sia il proxy ad eseguire il redirect nelle successive richieste, mentre quello temporaneo obbliga il proxy server ad eseguire sempre il check sull'URL originaria.
Se lo status è omesso Apache automaticamente intrepreterà il redirect come temporaneo.
Tramite la direttiva RedirectMatch è possibile eseguire un matching avanzato per eseguire il redirect, per esempio eseguire un redirect a seconda dell'estensione del file richiesto.
Segue un esempio utile per redirezionare solo le richieste di immagini ad un altro URL.
RedirectMatch (.*)\.(jpg|png)$ http://new-domain.it/images/$1.$2
Anche in questo caso è possibile specificare il tipo di redirect da eseguire (temp, permanent etc..)