Reindirizzamento PHP (redirect header)

Dicembre 2016

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 (non si può chiedere a tutti gli webmaster di cambiare, sui loro siti, i link che inviano al proprio sito). Infatti, 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.


Gli header HTTP

Le redirection sono degli HTTP header (intestazioni HTTP), e secondo il protocollo HTTP, gli header devo 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.

Reindirizzamenti semplici

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 relativo/assoluti

Ideale è scegliere questo percorso 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 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 di ogni file PHP corrispondente alla pagina A:

<?php
header('Status: [/contents/44-il-protocollo-http 301] Moved Permanently', false, 301);
header('Location: indirizzo_della_pagina_B');
?>

Potrebbe anche interessarti :
Il documento intitolato « Reindirizzamento PHP (redirect header) » da 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.