Implementare un redirect permanente utilizzando i vari linguaggi lato server
Redirect 301 in Classic ASP
<% Response.Status = "301 Moved Permanently" Response.AddHeader "Location", " http://www.miosito.it/nuova_pagina.asp" %>
Redirect 301 in ASP.Net
Sintassi C#:
private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.miosito.it/nuova_pagina.aspx"); }
Sintassi VB.Net:
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
Redirect 301 con PHP
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.miosito.it/nuova_pagina.php"); ?>
Redirect 301 con Cold Fusion
<CFHEADER statuscode="301" statustext="Moved Permanently"> <CFHEADER name="Location" value="http://www.miosito.it/nuova_pagina.cfm">
Redirect 301 con Perl
#!/usr/bin/perl -w use strict; print "Status: 301 Moved Permanantly\n"; print "Location: http://www.miosito.it/nuova_pagina.cgi/\n\n"; exit;
Redirect 301 con JSP
response.setStatus(301); response.setHeader("Location", "http://www.miosito.it/nuova_pagina.jsp"); response.setHeader("Connection", "close");
Gestire redirect permanenti con Apache
Un altro modo, molto utilizzato, per la gestione del redirect 301 riguarda Apache. E' possibile, infatti, configurare dei redirect mediante il file .htaccess in modo piuttosto semplice. Vediamo la sintassi:
redirect 301 /pagina_vecchia.html /pagina_nuova.html
Ovviamente nulla vieta di impostare un 301 su un nuovo dominio (cosa, necessaria quando si è cambiato il dominio del sito):
redirect 301 /pagina.html http://www.nuovosito.it/pagina.html
Attraverso una Rewrite Rule possiamo anche gestire lo spostamento di un intero sito web. Supponendo che il nuovo sito sia caratterizzato solo da un nuovo dominio, mentre i percorsi di cartelle e pagine sono i medesimi, possiamo far ricorso a questo codice:
RewriteEngine on RewriteRule (.*) http://www.nuovosito.it/$1 [R=301,L]
Gestire redirect 301 con HTML
E' una domanda che mi viene spesso posta durante seminari e nei vari forum. La risposta è: NON è possibile impostare redirect permanenti utilizzando un semplice markup HTML. Il perchè è piuttosto intuitivo: attraverso HTML, infatti, non possiamo agire sul protocollo HTTP e sull'invio degli status code (cosa che invece possiamo fare lavorando lato server).
|