我将“ 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;
 }

10-05 20:39
查看更多