Il redirect è una funzionalità che permette di reindirizzare i visitatori, di un sito o una sincola pagina, verso una nuova pagina o un nuovo dominio. Il redirect non è altro che un comando che obbliga il browser a far vedere agli utenti la pagina che viene indicata dal proprietario di un sito senza che se ne accorgano.

Esistono diversi tipi di redirect. In questo breve tutorial verranno indicati i più comuni.

NB: tutti i redirect vanno messi dopo

RewriteEngine On

Per fare un redirect 301 da sito senza il www, quindi http://dominio.ext, al sito con il www, quindi http://www.dominio.ext bisogna procedere come segue.

Il risultato finale sarà che andando sul sito senza il WWW si verrà redirezionati sul sito con il WWW.

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

Dove al posto di example.com va inserita l’url del dominio.

Per fare un redirect 301 da sito con il www, quindi http://www.dominio.ext, al sito senza il www, quindi http://dominio.ext bisogna procedere come segue.

Il risultato finale sarà che andando sul sito con il WWW si verrà redirezionati sul sito senza il WWW.

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

Dove al posto di example.com va inserita l’url del dominio.

Per fare il redirect, ad esempio, da un vecchio sito al nuovo bisogna inserire questo nell’htaccess

RewriteRule (.*) http://www.example.com/$1 [R=301,L]

Dove al posto di example.com va inserita l’url del nuovo sito.

Questo redirect va fatto nell’htaccess del sito di origine, quindi quello “vecchio”

Se si cambiano una o più URL (non tutte) molto visitate è necessario impostare un redirect per far arrivare i visitatori dalla vecchia url alla nuova.

Si deve inserire questo nell’htaccess

Redirect /olddir/oldfile.html http://example.com/newdir/newfile.html

Inserendo alla voce

  • /olddir/oldfile.html -> il vecchio percorso del file
  • http://example.com/newdir/newfile.html -> il nuovo percorso

Questa direttiva dell’htaccess permette di settare quale deve essere la pagina e/o il file principale (default handler) del sito. Per comodità si inserisce l’ordine di esecuzione.

Bisogna inserire il seguente codice

DirectoryIndex index.php index.html index.htm home.html home.php

Ovviamente essendo un esempio l’index può cambiare in base alle proprie esigenze.

Quando si attiva un certificato SSL è bene fare anche il redirect delle URL dal vecchio sito http al nuovo in https

Il redirect si può fare in due modi. Il primo è questo

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

dove tutto passa dalle variabili.

Il secondo è questo

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Dove al posto di example.com va messa l’url del sito.