Reindirizzamento PHP (redirect header)

Arriva un momento in cui ogni webmaster realizza che uno dei suoi file ha un nome non corretto o che l'arborescenza dei file ha necessità di essere modificata. In questi due casi è piuttosto facile cambiare i link sul sito mentre più complicata risulta la modifica dei link sugli altri siti che rimandano al proprio sito. Il cambio della posizione di una pagina o di un file potrebbe portare a incorrere nel rischio della non lettura della pagina agli utenti interessata o peggio, nel rischio di resettare completamente il SEO della pagina. Fortunatamente esiste una semplice soluzione: "redirection" (reindirizzamento) che lascia inalterata sia la coerenza della navigazione che quella del SEO, anche se l'insieme dei file di un sito è stato spostato.

Cosa sono gli header HTTP

Le redirection sono degli HTTP header (intestazioni HTTP), e secondo il protocollo HTTP, gli header devono essere inviati prima di ogni altro tipo di contenuto. In altre parole nessun carattere verrà inviato prima di richiamare la funzione header(), questa deve essere imperativamente utilizzata prima di qualunque altro codice HTML.

Reindirizzamento PHP semplice

Per reindirizzare il visitatore verso un'altra pagina (particolarmente utile nei loop condizionali) è sufficiente utilizzare il seguente codice:

<?php
Header( `Location: la_mia_pagina.php);
?>

Dove la_mia_pagina.php rappresenta l'indirizzo della pagina verso la quale si vuole reindirizzare. Questo percorso può essere assoluto e può ugualmente possedere dei parametri di forma: la_mia_pagina.php?param1=val1$m2=val2).

Percorso PHP relativo/assoluto

Ideale è scegliere il percorso assoluto che parte dalla root del server (DOCUMENT_ROOT) nel modo seguente:

<?php
header('Location: /directory/la_mia_pagina.php');
?>

Nel caso la pagina di destinazione si trovi su un altro server sarà necessario inserire l'url completo:

<?php
header('Location: http://it.ccm.net/forum/');
?>

Reindirizzamenti PHP temporanei/definitivi

Gli esempi citati prima rappresentano un reindirizzamento temporaneo, ciò significa che i motori di ricerca, per esempio Google, non lo prenderà in considerazione per l'ottimizzazione SEO. Invece se lo spostamento della pagina è definitivo e si si desidera segnalare ai motori di ricerca che la pagina A è ora al posto B, bisognerà inserire il seguente codice all'inizio del file PHP corrispondente alla pagina A:

<?php
header('Status: 301 Moved Permanently', false, 301);
header('Location: indirizzo_della_pagina_B');
?>

Foto: © Unsplash.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « Reindirizzamento PHP (redirect header) » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.