Blog

Redirect 301 per domini spostati

Guida completa che illustra come effettuare un redirect 301 ad un URL diverso da quello richiesto.

Il redirect 301 è un particolare tipo di reindirizzamento, necessario per dichiarare che l'URL richiesto è stato spostato in maniera permanente (dall'inglese moved permanently).
La sua caratteristica principale, che è anche una delle cause della sua diffusione in ambito SEO, è la capacità di trasmissione del PageRank delle pagine del proprio sito. Si può quindi dire che sia il più appetibile dai motori di ricerca, che in questa maniera ricevono indicazioni precise sulla nuova locazione dell'URL richiesto.
E' molto importante infatti evitare che un motore di ricerca vada incontro a pagine inesistenti, oppure che indicizzi contenuti identici su due domini diversi, a causa di cui si andrebbe incontro ad una penalizzazione quasi certa.

In tutti i casi che andremo ad analizzare, è importante ricordare che l'URL non può essere locale, ma deve essere obbligatoriamente remoto, non può quindi iniziare con /path, ma necessariamente con http://.

Esempi di URL

  • /index.htm (errato)

  • https://www.icelab.eu (corretto)

  • https://www.icelab.eu/index_new.htm (corretto)

Tecniche di redirect 301

Esistono svariate tecniche, adatte a diverse esigenze, correlate al metodo di sviluppo del proprio sito web, implementabili sia server-side che client-side.

PHP Redirect 301

Il linguaggio più diffuso in ambito web è sicuramente il PHP e, di conseguenza, non potrebbe mancare un metodo di redirect in questo linguaggio.
Il codice è di semplice applicazione, deve essere inserito all'inizio della pagina non più disponibile, prima di ogni operazione di stampa a video.

header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.nuovosito.com/nuovapagina.php');

/* oppure */

header("Location: http://www.nuovosito.com/nuovapagina.php", true, 301);


Ricordiamo che l'header Location, senza indicazioni sul codice di risposta HTTP (301), ritornerebbe un codice 302, che indica un redirect temporaneo ad un URL diverso da quello attuale.

ASP Redirect 301

Programmando in ASP, sempre nell’intestazione della vecchia pagina, dovrebbe essere inserito il seguente codice:

<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.nuovosito.com/nuovapagina.asp"
%>

 

Redirect tramite .htaccess

Se si dispone dell'accesso al webserver, esclusivamente nel caso in cui su di esso "giri" il famoso Apache e su cui sia attivo il mod_rewrite, è sufficiente creare un file .htaccess nella root del sito e inserire il comando:

RewriteEngine On

 
seguito da uno dei seguenti:

Redirect permanent http://www.miosito.com/vecchiapagina.php http://www.nuovosito.com/nuovapagina.php

 
oppure

Redirect 301 http://www.miosito.com/vecchiapagina.php http://www.nuovosito.com/nuovapagina.php

 
oppure

RedirectMatch 301 ^(pattern)$ http://www.nuovosito.com/$1

 
in cui il pattern è una espressione regolare che permette, in una sola volta, di fare un redirect per ogni pagina del dominio che corrisponda a quei criteri.

Ecco un esempio di applicazione di questa tecnica:

Dominio spostato

Nel caso in cui il dominio sia stato trasferito interamente ad un altro, ad esempio da vecchiosito.it a nuovosito.com, è sufficiente inserire nel file .htaccess, nella root di vecchiosito.it, il seguente codice:

RewriteEngine On
RedirectMatch 301 ^/(.*)$ http://www.nuovosito.com/$1

 
Nel caso di un dominio spostato, bisogna ricordarsi di segnalare ai siti che presentano backlinks verso il vecchio dominio, di aggiornare tali links per favorire il processo di conservazione del PageRank.

HTML Redirect 301

Esiste un metodo per aggiornare la pagina visualizzata dopo un certo periodo, chiamato meta refresh. Tramite questo sistema è possibile specificare l'URL di destinazione, reindirizzando quindi da una pagina ad un'altra. Specificando "0" come parametro dei secondi dopo cui effettuare il redirect, pare che l'effetto sia un redirect 301. Questo metodo è molto utile nel caso non sia possibile avere l'accesso agli altri metodi server side.
Come descritto nel seguente esempio, il tag meta deve essere inserito nella sezionedella pagina.
<div> </div>
<div>

<span class="codeStyle">



</span>
Redirect in corso...

</div>
 
<div> </div>

Coldfusion Redirect 301

<div> </div>
<div>

 

</div>
 
<div> </div>

Perl Redirect 301

<div> </div>
<div>

#!/usr/bin/perl -w
use strict;
print "Status: 301 Moved Permanantly\n";
print "Location: http://www.nuovosito.com/\n\n";
exit;

</div>
 
<div> </div>

ASP .NET - C#

<div> </div>
<div>

private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.miosito.it/nuova_pagina.aspx");
}

</div>
 
<div> </div>

ASP .NET - VB

<div> </div>
<div>

Private Sub Page_Load(object sender, System.EventArgs e)
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.miosito.it/nuova_pagina.aspx");
End Sub

</div>
 
<div> </div>
<div> </div>
<div> </div>

Altri metodi

<div> </div>

  • Redirect tramite codice Javascript

2 commenti

Solo gli utenti registrati possono lasciare commenti.