The code snippet below is a demo in how to redirect users to subsites based on their country IP location.
On this code I am using CloudFlare geo location API – the code is not perfect but could be a good starting point 🙂
/**
*
* Collect the current state from the URL and CloudFlare
*/
$user_country_code = strtolower( $_SERVER[ "HTTP_CF_IPCOUNTRY" ] );
$site_subdomain = strtolower( array_shift( explode( ".",$_SERVER[ 'HTTP_HOST' ] ) ) );
if ( $user_country_code == $site_subdomain ) {
// this is already using the country-code mapped version
// do nothing
} else {
switch( $user_country_code ) { // check if it's a country we currently support
case 'et';
case 'us';
case 'gb';
// yes - redirect to the specific subdomain
header( 'Location: http://'.$user_country_code.'.example.com' );
break;
default;
// no - redirect to www if not already there
if ( 'www' == $site_subdomain ) {
// already at www!
// do nothing
} else {
// redirect to www
header( 'Location: http://www.example.com' );
break;
}
}
}
Thank you for seeing my code snippet and feel free to share and comment :). Do you have a code snippet and you want to see it published on my site? I will be more than happy to do it please send me a message, (here)