我将“ wa,or and id”(来自这些州的访客)设置为重定向到website1.com-当我访问该网站时,它会将我重定向到website1.com(因此它知道我在WA)。但是,如果我将wa更改为fl,然后访问该网站,它将把我重定向到google.com-我设置的默认URL。
在上面的示例中,如果它们不是来自wa,id或-则它们应留在页面上/请勿重定向(除非存在合法的查询错误,而这似乎并非如此,因为它知道我在在西澳大利亚州)
有人知道我做错了吗?谢谢
<script src="//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>
调用另一个具有以下内容的JS文件:
var redirect = (function () {
/* This implements the actual redirection. */
var redirectBrowser = function (site) {
// Enter default URL below
var uri = "http://www.google.com/?=error";
if(site != "default") {
switch (site)
{
// For each site put the iso_code identfiers for each state/province (in lowercase) you want to redirect after each case. Copy and paste as below for more options.
case "fl":
case "or":
case "id":
uri = "http://www.website1.com";
}
}
window.location = uri;
};
var onSuccess = function (geoipResponse) {
/* There's no guarantee that a successful response object
* has any particular property, so we need to code defensively. */
if (!geoipResponse.subdivisions[0].iso_code) {
redirectBrowser("default");
return;
}
/* ISO country codes are in upper case. */
var code = geoipResponse.subdivisions[0].iso_code.toLowerCase();
if ( code ) {
redirectBrowser(code);
}
else {
redirectBrowser("default");
}
};
/* We don't really care what the error is, we'll send them
* to the default site. */
var onError = function (error) {
redirectBrowser("default");
};
return function () {
geoip2.city( onSuccess, onError );
};
}());
redirect();
最佳答案
将您的switch语句更改为此,并查看它是否有效:
switch (site){
case "fl":
case "or":
case "id":{
uri = "http://www.website1.com";break;}
default:
return;
}