Codice di stato 308: che cos'è, quando usarlo e come impostarlo?
Questo tutorial riguarda i seguenti argomenti:
Il codice di stato 308 è uno dei numerosi codici di stato di risposta HTTP che il server restituisce a una richiesta fatta da un client.
In particolare, lo stato 308 “Permanent Redirect” è uno dei vari tipi di reindirizzamento che indica ai browser e agli altri client come procedere andando verso la nuova posizione. Ma in che modo è diverso dagli altri reindirizzamenti e quando dovresti usarlo? Risponderemo a queste domande, quindi continua a leggere.
I browser dovrebbero aggiornare l’header della location della risorsa e reindirizzare automaticamente tutte le successive richieste per l’indirizzo originale al nuovo URL. Allo stesso modo, i motori di ricerca devono aggiornare la posizione della risorsa con il nuovo indirizzo nei loro database.
A prima vista, il codice di stato HTTP 308 Permanent Redirect è simile al codice di stato 301 “Moved”. Tuttavia, c’è una differenza fondamentale – il reindirizzamento permanente 308 richiede ai client di utilizzare il metodo della richiesta HTTP originale per la richiesta successiva alla nuova posizione. Al contrario, il metodo di richiesta originale può cambiare per richieste future con un reindirizzamento 301. Questo rende il reindirizzamento 308 molto più sicuro, poiché cambiare i metodi di richiesta facilita gli exploit di sicurezza.
Diamo un’occhiata a come funziona il codice di risposta 308 nel seguente esempio.
- Fai un ordine su un negozio online e il tuo browser invia una richiesta POST al web server.
- Tuttavia, l’indirizzo della pagina di pagamento è stato spostato in una nuova posizione URL e il web server restituisce un codice di stato 308.
- Il tuo browser invia una nuova richiesta POST alla nuova pagina conservando i dettagli dell’ordine ed è possibile completare l’acquisto.
Se il web server dovesse restituire un codice di risposta HTTP 301, il tuo browser potrebbe essere stato istruito a passare da un metodo POST a un metodo GET. Pertanto, invece di inviare i dettagli del tuo ordine al web server, il web server invia i dati che potrebbero compromettere il tuo dispositivo.
Qual è la differenza tra il codice di stato 308 e altri codici 3XX
I codici di stato HTTP 3XX riguardano i reindirizzamenti. Tuttavia, ogni codice all’interno di questa categoria ha un caso d’uso specifico e trasmette caratteristiche diverse al processo di reindirizzamento. Ecco un confronto diretto delle proprietà più fondamentali tra i quattro codici di stato della risposta HTTP standard utilizzati per il reindirizzamento – 301 Moved, 302 Found, 307 Temporary Redirect e 308 Permanent Redirect.
308 Permanent Redirect | 301 Moved | 302 Found | 307 Temporary Redirect | |
Uso comune | Reindirizzamento permanente | Reindirizzamento permanente | Reindirizzamento temporaneo | Reindirizzamento temporaneo |
Metodo di richiesta HTTP | Il metodo di richiesta HTTP non cambia. | Consente di modificare il metodo di richiesta HTTP. | Consente di modificare il metodo di richiesta HTTP. | Il metodo di richiesta HTTP non cambia. |
Posizione URL | Indica ai motori di ricerca e ai browser di aggiornare la posizione della risorsa con il nuovo indirizzo URL. | Indica ai motori di ricerca e ai browser di aggiornare la posizione della risorsa con il nuovo indirizzo URL. | Indica ai crawler dei motori di ricerca e ai browser di non aggiornare la posizione della risorsa. | Indica all’user agent di non aggiornare la posizione della risorsa. |
Impatto sulla SEO | Passa il valore SEO della posizione originale al nuovo URL. | Passa il valore SEO della posizione originale al nuovo URL. | Non passa il valore SEO dell’URL originale alla nuova posizione. | Può passare parzialmente il valore SEO dell’URL originale alla nuova posizione. |
Supporto nei Browser | Supporto per lo più universale in tutti i browser | Universalmente supportato in tutti i browser | Universalmente supportato in tutti i browser | Universalmente supportato in tutti i browser |
Quando usare un 308 Permanent Redirect
Il codice di stato 308 permanent redirect assicura che i motori di ricerca e i client memorizzino la nuova posizione della risorsa di destinazione e che le loro richieste reindirizzate utilizzino lo stesso metodo HTTP utilizzato nella richiesta originale. Queste caratteristiche rendere il codice di stato 308 particolarmente utile in alcuni scenari specifici.
Conservazione dell’integrità delle richieste
Un reindirizzamento permanente 308 può essere utile se la struttura del tuo sito web cambia. Ad esempio, se si sposta una risorsa da un percorso a un nuovo URI permanente (ad esempio da /vecchia-cartella/ a /nuova-cartella/). L’implementazione di reindirizzamenti 308 può ricollegare automaticamente i riferimenti alle risorse spostate, assicurando che gli utenti e i motori di ricerca siano permanentemente indirizzati ai nuovi URL.
Migrazione a un nuovo dominio
Quando sposti il tuo sito a un nuovo dominio e reindirizzi il traffico da quello vecchio, ti consigliamo di assicurarti che eventuali richieste POST, come quelle fatte dalle chiamate AJAX o dagli endpoint dei servizi web, non vengano convertite in Richieste GET. Un reindirizzamento 308 preserva il metodo tra i domini.
Invio di un modulo
Hai un modulo da cui i clienti inviano i dati e lo hai spostato in un nuovo URL? Un reindirizzamento 308 assicura che l’utente continui a utilizzare il metodo POST anche dopo essere stato reindirizzato alla nuova posizione. Questo è fondamentale per mantenere la funzionalità e la sicurezza degli invii dei moduli durante e dopo la transizione.
Forzare Endpoint Coerenti
Molti servizi richiedono che il tuo sito web mantenga endpoint coerenti, ad esempio un servizio RESTful in cui il metodo dell’endpoint rappresenta un’azione specifica. È possibile utilizzare un codice di risposta HTTP 308 per reindirizzare permanentemente l’URI effettivo di richiesta alla risorsa corretta senza il rischio di modificare il metodo.
Come impostare un reindirizzamento permanente 308
Utilizzando il file .htaccess
Puoi impostare un reindirizzamento permanente 308 attraverso il file .htaccess del tuo sito web, che regola il comportamento del tuo web server.
Segui i passaggi seguenti per sapere come.
- Accedi alla cartella principale del tuo sito web in Gestione file per il tuo sito web, nel pannello di controllo del tuo hosting, o tramite un client FTP. Più comunemente, la cartella principale è:
tuodominio.com/public_html
- Trova e apri il file .htaccess in Gestione File. Se utilizzi un client FTP e non puoi modificare i file, scarica il file .htaccess sul tuo computer locale e modificalo con un editor di testo.
- Determina cosa dovrebbe fare esattamente il reindirizzamento permanente 308 e utilizza il comando .htaccess appropriato. Di seguito, troverai alcuni esempi di diversi reindirizzamenti 308.
# Reindirizza una singola pagina Redirect 308 /vecchia-pagina.html http://www.esempio.com/nuova-pagina.html
# Reindirizza un'intera directory Redirect 308 /vecchia-directory/ http://www.esempio.com/nuova-directory/
# Reindirizza un intero sito a un nuovo dominio Redirect 308 / http://www.nuovodominio.com/
# Reindirizzamento con wildcard, richiede mod_rewrite RewriteEngine On RewriteRule ^vecchia-directory/(.*)$ http://www.esempio.com/nuova-directory/$1 [R=308,L]
# Reindirizzamento preservando la stringa di query RewriteEngine On RewriteCond %{QUERY_STRING} . RewriteRule ^vecchia-pagina.html$ http://www.esempio.com/nuova-pagina.html?%{QUERY_STRING} [R=308,L]
# Reindirizza un intero sito a un nuovo dominio preservando l'URI RewriteEngine On RewriteRule ^(.*)$ http://www.nuovodominio.com/$1 [R=308,L]
- Scrivi il comando di reindirizzamento 308 nel file .htaccess e salvalo. Se modifichi il file sul tuo computer locale, ricaricalo tramite FTP nella cartella principale del tuo sito web.
Utilizzando NGINX
Un altro tipo di web server popolare che molti hosting utilizzano è NGINX. Se hai il permesso di modificarne le impostazioni, puoi aggiungere un comando di reindirizzamento 308 al file di configurazione NGINX del tuo sito web.
Puoi trovare le istruzioni passo-passo qui sotto.
- Apri la cartella contenente i file di configurazione per i tuoi siti web. La posizione standard è:
/etc/nginx/sites-available/
- Apri il file di configurazione del tuo sito web. In genere, il file prende il nome dal nome del dominio. Ad esempio, se il dominio è mydomain.com, anche il file di configurazione verrà chiamato mydomain.com.
- Trova il blocco del server, una sezione del file di configurazione e inserisci il comando di reindirizzamento 308 all’interno. Il seguente esempio può fungere da modello per il tuo reindirizzamento:
location /old-page.html { return 308 http://www.example.com/new-page.html;
Sostituisci old-page.html con la location della vecchia risorsa e http://www.example.com/new-page.html con la nuova URL della location permanente.
Ecco come appare il reindirizzamento all’interno del blocco server.
Utilizzando plugin di WordPress
Se il tuo sito web è basato su WordPress, potresti avere un’opzione più accessibile per impostare un reindirizzamento URL 308. Ci sono molti plugin con l’opzione per impostare un reindirizzamento permanente 308.
Per questo esempio, utilizzeremo il plugin gratuito Redirection.
- Accedi alla bacheca di WordPress e vai su Plugin > Aggiungi un nuovo plugin.
- Nella barra di ricerca, digita redirection.
- Il plugin Redirection apparirà come uno dei primi risultati. Clicca sul pulsante Installa Ora.
- Una volta installato il plugin, Installa Ora verrà sostituito da un pulsante Attiva. Cliccaci sopra per attivare il plugin.
- Vai su Strumenti > Redirection.
- Digita il vecchio URL nel campo URL di partenza.
- Digita la nuova posizione nel campo URL di arrivo.
- Clicca sull’icona Mostra opzioni avanzate (ruota dentata).
- Apri il menu a tendina Con codice HTTP e seleziona 308 – Redirezione permanente.
- Conferma il reindirizzamento con il pulsante Aggiungi una redirezione.
Effetto dello stato di codice 308 sulla SEO
Reindirizzare le risorse da una posizione all’altra solleva sempre preoccupazioni circa gli effetti sul punteggio SEO (Search Engine Optimization). I motori di ricerca possono essere spietati se i reindirizzamenti non vengono gestiti in modo appropriato. Tuttavia, se eseguiti con attenzione, i reindirizzamenti permanenti 308 sono generalmente innocui.
Ecco alcuni punti chiave degli effetti del codice di stato 308 sulla SEO.
- Preserva i segnali di ranking – Il reindirizzamento 308 è progettato per preservare il metodo HTTP utilizzato nella richiesta originale. Questo è vantaggioso per la SEO in quanto indica ai motori di ricerca di trasferire tutti i segnali di ranking, come link equity e page authority, al nuovo URL.
- Riduce la confusione per i motori di ricerca – Il codice di stato 308 riduce la possibilità per i motori di ricerca di interpretare erroneamente l’intento del reindirizzamento poiché indica loro che il reindirizzamento è permanente e che dovrebbero preservare il metodo HTTP originale, che può aiutare a mantenere le prestazioni SEO.
- Migliora l’esperienza utente – Mantenendo il metodo HTTP originale, il codice di risposta 308 assicura che i visitatori non incontrino comportamenti inaspettati sulla pagina a cui vengono reindirizzati. Pertanto, aiuta a mantenere l’esperienza dell’utente, una parte vitale della SEO
- Richiede una corretta implementazione – Per beneficiare appieno dei vantaggi SEO di un reindirizzamento 308, deve essere incorporato correttamente. Un’implementazione errata può portare a problemi come i loop di reindirizzamento o le pagine che non vengono indicizzate correttamente, danneggiando il punteggio del tuo sito web.
- Non ampiamente riconosciuto – Sebbene sia supportato dalla maggior parte dei browser moderni, il codice di risposta 308 non è ampiamente riconosciuto come il codice di stato 301. Dovresti cercare se i motori di ricerca e i browser preferiti del tuo pubblico di destinazione supportano questo tipo di reindirizzamento.
Riepilogo
Il codice di stato 308 è un potente strumento che ti consente di riposizionare e ristrutturare le risorse della tua pagina web mantenendo l’esperienza utente e il link juice della posizione originale.
Tuttavia, l’utilizzo del reindirizzamento 308 richiede attenzione e diligenza. Un’implementazione errata può danneggiare seriamente le prestazioni e il traffico del tuo sito web. Pertanto, capire come funziona il codice di stato 308, e come configurarlo, è determinante per reindirizzare efficacemente i visitatori alla nuova posizione del tuo sito web.