我的公司有几个不同的域名,最简单的是.com到.ca网站。我们如何创建一个根据用户位置更改域的系统。例如:如果来自美国的访问者在Google上找到我们的.ca网站,我该如何将其重定向到.com?
谢谢!
答案 0 :(得分:0)
也许使用带有谷歌地图api的html5地理位置和重定向的window.location.replace可能是一个解决方案。
window.onload = function () {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(fnPosition);
}
}
function fnPosition(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
checkCountry(lat,long);
}
function checkCountry(lat,long) {
var country = {};
var latlng = new google.maps.LatLng(lat, long);
geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': latlng}, function(results) {
if (results[1]) {
for (var i=0; i<results[0].address_components.length; i++) {
for (var b=0;b<results[0].address_components[i].types.length;b++) {
if (results[0].address_components[i].types[b] == "country") {
country =results[0].address_components[i];
break;
}
}
}
}
fnRedirect(country);
});
}
function fnRedirect(country) {
switch(country.short_name) {
case 'CA':
// some window window.location.replace(...)
break;
default:
// whatever
}
}
我使用此示例从位置here
获取信息在php中,您可以根据ip获取位置。
$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
switch ($details->country) {
case 'CA':
header('Location: http://www.example.com/');
exit;
break;
default:
#whatever
break;
}
PHP示例here