Con Redirect 301 si intende la regola per cui un file viene permanentemente spostato vero una nuova locazione.
È il metodo di reindirizzamento permanente corretto per la maggior parte delle pagine e siti web, in quanto avvisa i motori di ricerca che tutto ciò che era contenuto sotto il vecchio URL è ora spostato al nuovo URL.
Sui server Apache la regola di reindirizzamento viene indicata nel file .htaccess o nell’header delle pagine dinamiche.
Nei server IIS è invece possibile reindirizzare tramite ASP o ASP.net, oppure dal proprio hosting provider.
Quali regole inserire nel tuo .htaccess per effettuare un Redirect 301?
Per prima cosa, aggiungi al tuo .htaccess queste due righe:
Options +FollowSymLinks
RewriteEngine on
Reindirizzare un URL univoco ad una pagina specifica
Redirect 301 /oldpage/ http://www.sitoweb.com/newpage/
Reindirizzare una directory specifica e tutto il suo contenuto ad un’altra
RedirectMatch 301 ^/olddirectory/ http://www.sitoweb.com/nuovadirecotry/
Reindirizzare un dominio ad un altro
RewriteBase / RewriteRule (.*) http://www.sitoweb.com/$1 [R=301,L]
Reindirizzare un dominio ad un altro, mantenendo l’URL path
RewriteCond %{HTTP_HOST} ^vecchiositoweb\.com$ [NC] RewriteRule ^(.*)$ http://www.nuovositoweb.com/$1 [R=301,L]
Reindirizzare un’estensione di file ad un’altra, mantenendo il nome
RedirectMatch 301 ^(.*)$ http://www.sitoweb.com
Da not-www to www
RewriteCond %{HTTP_HOST} ^sitoweb.com [NC] RewriteRule ^(.*)$ http://www.sitoweb.com/$1 [L,R=301]
Da HTTP a HTTPS
RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
Eliminare index.php o index.xml e reindirizzare alla root
RewriteCond %{THE_REQUEST} /index.php HTTP [NC] RewriteRule (.*)index.php$ /$1 [R=301,L]RewriteCond %{THE_REQUEST} /index.html HTTP [NC] RewriteRule (.*)index.html$ /$1 [R=301,L]