mercoledì 16 gennaio 2019

Redirect 301 (Permanent) attraverso web.config

L'operazione di redirect può essere necessaria quando si cambia il nome del dominio per varie necessità ma non si vuole perdere il rank dei motori di ricerca. 
Si lasciano i contenuti del vecchio sito (circa tre mesi), se ne costruisce una copia con il nuovo dominio ed ogni pagina del vecchio sito viene reindirizzata al nuovo avendo cura di indicare la direttiva "permanent" (ovvero 301).
Quando i crawler dei motori di ricerca individuano le pagine del vecchio sito troveranno che la pagina punta ad un nuovo dominio e "impareranno" che ora i contenuti sono altrove (cioè nel nuovo sito).
Se il sito è costituito da poche pagine non sarà difficile inserire nella sezione head della pagina le direttive necessarie al re indirizzamento ma se le pagine sono alcune decine il lavoro si fa noioso... se poi il sito non è costituito da pagine statiche ma si usano linguaggi di script server side, non si può proprio fare....
Il sistema che propongo è adatto a chi usa CMS che utilizzano asp.net e che quindi possono modificare a manina il file web.config
Personalmente come CMS uso DNN che propone, per effettuare l'operazione di redirect, uno specifico modulo venduto a caro prezzo....


Per reindirizzare le pagine di un sito a nuovi URL utilizzando lo stato 301 agire come segue:
Creare un file rewriteMaps.config con questa struttura:

<?xml version="1.0" encoding="utf-8"?>
<rewriteMaps>
<rewriteMap name="Redirects">
<add key="/oldurl" value="/newurl" />
<add key="/oldurl2" value="/newurl2" />
... 
</rewriteMap>
</rewriteMaps>

Salvare il file nella root del sito.
Modificare il file web.config inserendo nella opportuna sezione il seguente codice:

<configuration>
<system.webServer>
<rewrite>
<rewriteMaps configSource="rewritemaps.config"><rewriteMaps>
<rules>
<rule name="Redirect rule1 for Redirects">
<match url=".*" />
<conditions>
<add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Verificare il tutto sul sito: https://httpstatus.io/
Tale sito restituisce il response del server ad ogni chiamata di pagina... potrete così verificare se la procedura funziona

NB: il tutto può essere preceduto dall'analisi di quali siano le pagine indicizzate dal motore di ricerca: scrivere sulla barra della ricerca "site:xyz:it"; la risposta sarà l'elenco delle pagine indicizzate. Per ognuna delle pagine sarà possibile così inserire la chiave e lo specifico indirizzo di nuova destinazione nel file rewriteMaps.config

Nessun commento:

Posta un commento