URL Rewrite e HTTP Redirect - Utilizzi pratici Come utilizzare le tecniche di URL Rewrite e HTTP Redirect all’atto pratico ipotizzando alcuni casi d’uso comuni

URL Rewrite e HTTP Redirect - Utilizzi pratici

Dopo aver parlato delle due tecniche URL Rewrite e HTTP Redirect in termini generali, in questo articolo andremo ad approfondire come utilizzarle all’atto pratico mettendo a fuoco dei casi d’uso comuni.

L'obiettivo è quello di mettere a fuoco i casi in cui è consigliabile utilizzare un URL Rewrite, quelli in cui è bene impostare degli HTTP Redirect, e - soprattutto - le situazioni in cui è opportuno utilizzarli entrambi in modo congiunto al fine di ottenere il migliore risultato possibile in ottica SEO.

Gli argomenti trattati in questo articolo fanno parte del corso di formazione per Web Administrator organizzato da Ryadel per privati e aziende: per maggiori informazioni, consulta questa pagina.

Quando utilizzare un URL Rewrite

In sintesi, il rewrite va utilizzato ogni volta che vogliamo accettare la URL chiamata dall’utente, ma ricondurla (internamente) a una logica nostra: in altre parole, “gestirla internamente” tramite il nostro server anziché respingerla e/o reindirizzarla verso altri URL (anche gestiti tramite altri server).

Proviamo ad elencare alcuni casi d’uso tipici dove ha senso prevedere un URL rewrite:

  • Consentire l’utilizzo di URL più leggibili, anche in ottica SEO. Esempio: invece di creare URL del tipo www.ryadel.com/?postId=127 (poco leggibile, pessima in ottica SEO), potremmo creare URL del tipo www.ryadel.com/come-configurare-wordpress-127.html (molto più leggibile, e molto migliore in ottica SEO), creando poi la regola necessaria per “riscriverla” come la precedente.
  • Nascondere determinati path interni. Ad esempio, invece di esporre la seguente cartella filesystem: www.ryadel.com/utenti/mario-rossi/files/avatar.png, potremmo esporre questa:
    www.ryadel.com/utenti/127/files/avatar.png, "riscrivendola" poi internamente così da servire comunque, in risposta alla request, il file presente nella cartella occultata.

Quando utilizzare un HTTP Redirect

In sintesi, il redirect va utilizzato ogni volta che vogliamo sostituire la URL chiamata dal client/browser con un’altra, presumibilmente più corretta o più aggiornata, eventualmente anche gestita da web server diversi.

Proviamo ad elencare alcuni casi d’uso tipici dove ha senso prevedere un HTTP redirect:

  • Migrare un sito da un dominio all’altro. Ad esempio, da www.ryadel.it a www.ryadel.com. In questi casi, poiché la migrazione è tipicamente permanente, andremo a utilizzare il Redirect con status code 301 (Permanent).
  • Bloccare l’accesso a una sezione o a una pagina di un sito. Ad esempio: www.ryadel.com/pagamenti/, oppure www.ryadel.com/post-da-nascondere/. In questo caso potremmo voler utilizzare un Redirect con status code 301 o 302 a seconda della durata che vogliamo dare al blocco (permanente o temporaneo).

Utilizzo congiunto di Rewrite e Redirect

Tipicamente, è buona prassi fare in modo che ogni pagina web dei nostri siti web sia accessibile mediante un singolo URL. I motori di ricerca tendono infatti a penalizzare pagine identiche accessibile tramite molteplici URL, perché le considerano - anche giustamente - come tentativi scorretti di creare link al proprio sito.

Per questo motivo, quando si sceglie di creare URL leggibili per le proprie pagine web (www.ryadel.com/come-configurare-wordpress-117.html) e, contestualmente, si utilizzano tecniche di URL Rewrite per “riscriverle” internamente per farle “leggere” a PHP o ad altri linguaggi server-side (www.ryadel.com/index.php?postId=117), è buona norma anche impostare un HTTP Redirect sul secondo indirizzo, in modo che reindirizzi al primo. In questo modo:

  • Se l’utente effettua una request utilizzando la URL leggibile, il web server effettuerà un URL rewrite sulla URL interna (non leggibile);
  • Se l’utente effettua una request utilizzando la URL interna (non leggibile), riceverà un HTTP Redirect (tipicamente 301) sulla URL leggibile;

Ovviamente, però, questo HTTP Redirect non potrà essere impostato a livello di web server, perché quest’ultimo non avrebbe modo di ricostruire la URL leggibile: più precisamente, gli manca l’informazione relativa al nome o al titolo della pagina web (nel caso di cui sopra, l'informazione mancante è “come-configurare-wordpress”). Come facciamo quindi a impostare questo HTTP Redirect? O meglio, chi è l’unico che ha la possibilità di farlo?

La risposta è semplice: il modulo che gestisce le request dinamiche server-side, ovvero (nel nostro caso) PHP; è la pagina PHP che, effettuando la query al Database utilizzando l’ID della pagina o dell’articolo, ha modo di recuperare il titolo e di creare la URL leggibile “corretta”; di conseguenza, sarà PHP a dover impostare il redirect, cosa che fortunatamente può fare visto che è lui a produrre la HTTP Response (header compresi): come sappiamo, infatti, le informazioni relative al redirect vengono indicate al browser tramite gli HTTP response header, e più precisamente nel Location header.

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.