Molto spesso capita che sia necessario gestire più siti paralleli lavorando su di un sito multilingua, e far sì che i visitatori provenienti da un certo paese debbano essere rimandati sul sito “territorialmente” di loro competenza. Ad esempio, se siete i titolari di http://sito.it, potreste voler rimandare i visitatori francesi su http://sito.fr, oppure sul sottodominio http://france.sito.it, o dovunque vogliate.
Il problema del redirect di un utente in base alla sua geolocalizzazione non è cosa da poco, specialmente quando si inizia a pensare all’altissimo numero di indirizzi IP di un paese… come si fa a gestirli tutti?
Ma per fortuna, con Tantrahost hai una comoda soluzione a portata di mano, sfruttando una combinazione di librerie PHP predefinite e la possibilità di modificare il file .htaccess. Nessuna conoscenza di programmazione necessaria!
Come fare il redirect di un utente in base al paese di provenienza
La prima cosa da fare è accedere al Cpanel, e selezionare l’icona “select PHP version” sotto la scheda Software.
Attendete il caricamento della pagina, e scorrete in basso fino a trovare le opzioni della lettera G. Adesso, quello che dovrete fare è attivare la libreria GeoIP.
E’ ora che avviene la magia: dovrete modificare il vostro file .htaccess ed inserire in coda queste righe:
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
# Redirect dei paesi
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CODICE-PAESE$
RewriteRule ^(.*)$ http://......../$1 [L]
Al posto di “CODICE-PAESE” dovrete inserire il codice a 2 lettere rappresentativo del paese, esempio IT per l’Italia, FR per la Francia, JP per il Giappone e così via…. Lo standard si chiama ISO 3166-1 alpha-2, e potrete trovare l’elenco completo dei paesi sulla pagina Wikipedia.
Esempio di redirect con GeoIP e htaccess
Supponiamo che abbiate un sito web con url http://sito.it e che dobbiate redirezionare chi visita il sito dalla Francia su http://france.sito.it, e chi visita il sito dalla Spagna su http://espana.sito.it. Quello che dovrete scrivere nel vostro file .htaccess sarà:
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
# Redirect Francia
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^FR$
RewriteRule ^(.*)$ http://france.sito.it/$1 [L]
# Redirect Spagna
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^ES$
RewriteRule ^(.*)$ http://espana.sito.it/$1 [L]
Come verificare il funzionamento del redirect geografico via .htaccess
Come ultimo passo, dovrete verificare che le vostre impostazioni siano state recepite con successo. Allo scopo, esistono due tool molto semplici da usare, direttamente online, gratuiti e senza registrazione.
- https://shotsherpa.com/
- https://www.locabrowser.com
Entrambi funzionano più o meno allo stesso modo: inserite l’URL del sito da testare, il paese da cui “visitarlo” e nella schermata subito sotto potrete vedere il risultato.
E questo è quanto! Avete mai avuto bisogno di reindirizzare un utente su un altro sito? Avete usato un altro metodo? Fatecelo sapere nei commenti!